我如何grep一个模式,其中模式是一个生成列表的shell扩展?

时间:2016-04-20 23:38:03

标签: grep

echo $'one\ntwo\nthree' | grep -F -v $(echo three$'\n'one)

理论上输出应该是字符串二

我已经读过-F命令让grep将每一行解释为由'或'连接的列表。限定符。

1 个答案:

答案 0 :(得分:2)

唯一的错误是缺少双引号:

echo $'one\ntwo\nthree' | grep -F -v "$(echo three$'\n'one)"

此外,请记住,这也会过滤掉“三个一些”,“一些一个”等...

(@ etan-reisner指出在原始和固定命令之前运行set -x可以用来观察双引号在这里产生的差异,更一般地说,是调试bash的有用方法命令。)