我希望能够将任何命令行输出传递到 bash 脚本或一些根据布尔搜索过滤内容的命令行程序 - 不需要正则表达式(但如果支持的话就可以了)
例如,如果我有如下文件:
文件1.txt
hello there
me and you are going to the store
this is a file created by john doe and his friend jane
john is here
然后可以像这样运行我虚构的脚本:
$ cat file1.txt | filter "(me OR you) OR (john AND ! doe)"
me and you are going to the store
john is here
我可能可以将一些东西拼凑在一起,比如一堆grep
andgrep -v
调用,但想知道我是否缺少一些更简洁的方法来做到这一点?
答案1
对于像这样更复杂的过滤器,awk
可能可以完成这项工作:
awk '( /me|you/ ) || (/john/ && ! /doe/ )' /path/to/file