【发布时间】:2016-05-28 17:33:03
【问题描述】:
长话短说,我正在尝试使用变量 grep 包含在文本文件第一列中的值。
这是一个脚本示例,其中 grep 命令不起作用:
for ii in `cat list.txt`
do
grep '^$ii' >outfile.txt
done
list.txt 的内容:
123,"first product",description,20.456789
456,"second product",description,30.123456
789,"third product",description,40.123456
如果我执行grep '^123' list.txt,它会产生正确的输出...只是list.txt 的第一行。
如果我尝试使用变量(即grep '^ii' list.txt),我会收到“^ii command not found”错误。我试图将文本与变量结合以使其工作:
VAR1= "'^"$ii"'"
但VAR1 变量在$ii 变量之后包含一个回车:
'^123
'
我已经尝试了删除 cr/lr(即 sed 和 awk)的清单,但无济于事。必须有一种更简单的方法来使用该变量执行 grep 命令。我宁愿继续使用 grep 命令,因为它在手动执行时可以完美运行。
【问题讨论】:
-
另外,显示你想要的输出。
-
感谢您的回复!在这种情况下,所需的输出只是文件的第一行。基本上,我希望 grep 搜索第一列并忽略其余列。如果使用不带标志的 grep,则会显示文件的每一行。