我很确定有人已经问过这个问题,但我无法找到它,无论如何,这里是:
假设我们有一个文件:
$cat file
AAA 123
BBB 456
CCC 789
我想做一些事情,如:
printf "BBBnAAAn" | grep - file
,其中"-"是标准输出。但是grep不认为它是标准输出。
和get
BBB 456
AAA 123
它也应该适用于许多模式,而不是echo "BBB"
。除了echo,我有几个管道和一个列表作为输出。
您可以使用gnu grep:
printf "BBBnAAAn" | grep -f - file
我终于找到了一个不能完全说服我的技巧:
grep -f <(printf "BBBnAAAn") file
的回报:
AAA 123
BBB 456
但为什么这是在file
顺序?
我发现它不实用,因为它可以相当长,而不是printf "BBBnAAAn"
。