shell里面的index函数

 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
happygrid
2015-06-12 · TA获得超过3106个赞
知道大有可为答主
回答量:2672
采纳率:69%
帮助的人:2172万
展开全部
你说的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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式