如果文件有-
apple,orange,banana
orange
ora,orange,apple
apple,ora
orange,apple,ora,banana
我只想打印包含ora
-orange
的行
ora,orange,apple
orange,apple,ora,banana
答案1
与单埃格雷普:
egrep 'ora\b.*orange|orange.*ora\b' file
输出:
ora,orange,apple
orange,apple,ora,banana
或与单sed表达:
sed -n '/orange/{/ora\b/p}' file
ora,orange,apple
orange,apple,ora,banana
在这两种方法中\b
都使用了(字边界)。
答案2
Grep 获取整个单词:
$ grep -w orange foo.csv | grep -w ora
ora,orange,apple
orange,apple,ora,banana
-w
意味着匹配的文本应该被非单词字符包围(单词字符是字母、数字、下划线)。