Grep具有可变原因文件且数据为空

时间:2019-04-18 09:41:46

标签: bash shell grep

当我在脚本中使用此命令时:

grep -A 12 -B 37 "1000221411" /home/ashb/20181007/soap_nohup_20181007_0*.log | awk '{$1=""}1' > abcdef.txt

但是当我尝试放置变量以在日志文件中找到更多id时:

grep -A 12 -B 37 ${b} /home/ashb/20181007/soap_nohup_20181007_0*.log | awk '{$1=""}1' > abcdef.txt

然后abcdef.txt变成空文件。 我尝试echo ${b},它就在我的路上。 我该如何解决? ${b}的输入:

1000221411
1000248725
1000287875
1000296552

2 个答案:

答案 0 :(得分:0)

您似乎正在尝试这样做:

$ cat file
foo
1000221411
bar
1000296552

$ echo "$b"
1000221411
1000248725
1000287875
1000296552

$ grep -f <(echo "$b") file
1000221411
1000296552

答案 1 :(得分:0)

由于${b}包含 9 个数字,因此似乎是{em> meant 数组。上面代码的问题是:

  1. ${b}未引用,因此grep 8 参数过多。

  2. 如果引用了${b},则grep只会找到相同顺序的 9 个数字。但是grep在文件中只有的文件中找不到任何内容。