排除 unix 文本文件中具有特定小写字符的所有行

排除 unix 文本文件中具有特定小写字符的所有行

我有一个文本文件,其中包含下/上字符的组合。我想删除出现任何特定小写字母的行。

文本文件内容:

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具有相同的最终结果,但工作原理是省略从解析的文件中的任何行匹配。

相关内容