这是我的问题:我使用grep
在多个文件中查找字符串。
假设我正在寻找“气球”这个词。 grep返回包含气球的行,例如“Here is a balloon”,“loginxxballoonx”,“balloon123”等。除了一个案例之外,这不是问题:我想忽略该行,如果它找到“/balloon/".
如何在多个文件中查找每个“气球”字符串,但忽略带/前后的字符串(忽略“/ balloon /”)
编辑:我会更准确地解决我的问题:我要搜索的字符串存储在一个文件中。我使用grep -f mytokenfile
来搜索存储在“mytokenfile”文件中的每个字符串。例如,我的文件“mytokenfile”如下所示:
balloon
avion
car
bus
除了前缀和后缀是“/”。>
答案 0 :(得分:1)
应该使用否定符号^
grep [^/]balloon[^/] ballonfile
编辑: 但是,如果有一个气球,那么这并不起作用。没有前缀或任何其他字符的后缀。
答案 1 :(得分:0)
使用以下方法(考虑到可能存在多次出现搜索关键字的行,例如loginxxballoonx, sme text /balloon/ text
):
cat testfile | grep '[^/]balloon[^/]' | grep -v '/balloon/'
-v( - 反向匹配)
反转匹配感,选择不匹配的线条。 (-v是 由POSIX指定。)