shell里面的index函数
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
展开全部
你说的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
如何测试一个字符串在另外一个字符串里?比如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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询