【发布时间】:2015-09-22 09:48:27
【问题描述】:
我有一个脚本,它获取单词列表并在文件中搜索它们。我使用 xargs 获取列表中的单词并将它们传递给 grep。
awk 'BEGIN { FS = ","; } { print $9 }' $file | xargs -I {} grep -w {} $second_file
第一个 awk 命令搜索 $file 中的第 9 列。它会生成约 50 个名称的列表,例如 YHOO、AAPL、LB 等(股票代码符号)。然后我使用 xargs 将结果传递给 grep 并搜索唯一的匹配项。
问题是 grep 有时会返回正确的股票代码和其他附加了 .# 的符号。
例如:
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 '\sLB\s' $second_file
它只返回 LB 而不是 LB.1,这正是我想要的。
如何使用 xargs 在脚本中复制“\sLB\s”?如果我写
grep '\s{}\s'
在我的脚本中它不起作用,所有结果都是空的。
谢谢!
【问题讨论】: