永发信息网

shell里面的index函数

答案:2  悬赏:30  手机版
解决时间 2021-03-10 19:33
  • 提问者网友:半生酒醒
  • 2021-03-10 04:18
shell里面的index函数
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-03-10 05:25
你说的awk index?
如何测试一个字符串在另外一个字符串里?比如a="11",b="11 22 33 44",如何判断a是否存在与b中?这就需要用index()函数。我们讲一个例子:

文件a:
36 18 19 70 97
66 71 13 23 48
23 68 88 11 12

文件b:
97 19 18 36 18 28 71
53 24 33 48 13 66 25
55 12 11 75 36 23 19

要求文件a里对应文件b里的行,如果文件a里出现过的数字,在文件b里标记出来。

$ awk '{getline v<"a";for(i=1;i<=NF;i++)if(index(v,$i))$i="-"$i}1' b

-97 -19 -18 -36 -18 28 71

53 24 33 -48 -13 -66 25

55 -12 -11 75 36 -23 19
[解析]
index(s, t) Returns the index of the string t in the string s.
返回t字符串存在与s字符串中位置的正整数,不存在则返回0。

awk 'ARGIND==1{for(i=1;i<=NF;i++)a[FNR","$i];next}{for(i=1;i<=NF;i++){FNR","$i in a?$i="-"$i:0}}1' a b
全部回答
  • 1楼网友:夜余生
  • 2021-03-10 06:55
函数没有参数那还叫函数吗? shell 中定义一个函数是不需要说明参数的,使用的时候可以给它参数,多少都可以,在函数中,引用参数,$1,$2,就是第一个参数,第二个参数的意思。 比如: .. function han { echo $1 } han "hello world!" .. 在shell 执行后,会显示 hello world!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯