echo $'one\ntwo\nthree' | grep -F -v $(echo three$'\n'one)
理论上输出应该是字符串二
我已经读过-F
命令让grep将每一行解释为由'或'连接的列表。限定符。
答案 0 :(得分:2)
唯一的错误是缺少双引号:
echo $'one\ntwo\nthree' | grep -F -v "$(echo three$'\n'one)"
此外,请记住,这也会过滤掉“三个一些”,“一些一个”等...
(@ etan-reisner指出在原始和固定命令之前运行set -x
可以用来观察双引号在这里产生的差异,更一般地说,是调试bash的有用方法命令。)