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