xargs和grep在bash脚本中

我有一个脚本,它会获取单词列表并在文件中搜索它们。 我使用xargs来获取列表中的单词并将它们传递给grep。

awk 'BEGIN { FS = ","; } { print $9 }' $file | xargs -I {} grep -w {} $second_file

第一个awk命令搜索$ file中的第9列。 它产生约50个名字的列表,如YHOO,AAPL,LB等(股票代码符号)。 然后我使用xargs将结果传递给grep,并搜索唯一的事件。

问题在于,grep有时会返回正确的ticker符号和附加了。#的其他符号。

例如:

LB
LB.1

将通过上述命令返回。

执行搜索的文件(上面的$ second_file)看起来像这样

2006-09-30      006733  LB      501797104       25504010        10      26.490000       2006-09-30      28.940000       2006-12-31      0.092488

在终端中,我可以输入

grep  'sLBs'   $second_file

它只返回LB而不是LB.1,这正是我想要的。

我如何使用xargs在脚本中复制' sLB s'? 如果我写

grep 's{}s'

在我的脚本中它不起作用,所有结果都是空的。

谢谢!


为什么不把它保存在一个awk命令中呢? 从你告诉我们到目前为止你所需要的是:

awk 'NR==FNR{ticks[$9]; next} $3 in ticks' FS="," "$file" FS=" " "$second_file"

如果这样做不能达到你想要的,编辑你的问题来澄清你的要求,并提供更具代表性的输入/输出。

链接地址: http://www.djcxy.com/p/12889.html

上一篇: xargs and grep in bash script

下一篇: Linux find and grep command together