我很确定有人已经问过这个问题,但我无法找到它,无论如何,这里是:
让我们说我们有一个文件:
$cat file
AAA 123
BBB 456
CCC 789
我想做一些事情:
printf "BBB\nAAA\n" | grep - file
其中" - "是标准输出。但grep并不认为它是stdout。
并获取
BBB 456
AAA 123
它也应该适用于许多模式,而不是echo "BBB"
。而不是回声我没有管道和列表作为输出。
答案 0 :(得分:1)
使用gnu grep你可以这样做:
printf "BBB\nAAA\n" | grep -f - file
答案 1 :(得分:0)
我终于找到了一个并不完全说服我的技巧:
grep -f <(printf "BBB\nAAA\n") file
返回:
AAA 123
BBB 456
但为什么这是file
顺序?
我发现它不实用,因为它可能相当长而不是printf "BBB\nAAA\n"
。