我有一个文本文件,其中包含下/上字符的组合。我想删除出现任何特定小写字母的行。
文本文件内容:
aASDF1234qwerty;lkJHG
fdsaAghiyirchgdadgqa2
任务 - 删除出现任何小写字符“a”、“e”、“j”、“k”的所有行。
我尝试了下面的选项来获取仅找到大写字母的所有行,但它没有按预期工作。grep -wo '[[:alnum:]]*A*E*J*K*[[:alnum:]]*' test.txt
答案1
使用grep
:
grep -v '[aejk]' /path/to/file
使用awk
:
awk '! /[aejk]/ { print }' /path/to/file
使用sed
:
sed '/[aejk]/d' /path/to/file
所有这些示例中使用的正则表达式/[aejk]/
, 可以音译为“以下任意字符:a
, e
, j
, 或k
”。grep
和调用awk
返回任何符合以下条件的行不是匹配该表达式;调用sed
具有相同的最终结果,但工作原理是省略从解析的文件中的任何行做匹配。