如何忽略所有多次包含特殊字符的文本?

如何忽略所有多次包含特殊字符的文本?

输入示例:

apple_ig
rabbit_cat_ig
dog_ig
bird_duck_ig
orange_ig
goat_ig

预期输出:

apple_ig
dog_ig
orange_ig
goat_ig

我需要忽略整个字符串中多次包含下划线 _ 的所有数据。

bash、ksh、sed、grep、awk

答案1

$ grep -v '_.*_' file
apple_ig
dog_ig
orange_ig
goat_ig

答案2

使用awk, 只打印最多有一个下划线的行。

$ awk -F_ 'NF<=2' file
apple_ig
dog_ig
orange_ig
goat_ig

答案3

使用sed

$ sed -n '/^[^_]*_[[:alpha:]]\+$/p' input_file
apple_ig
dog_ig
orange_ig
goat_ig

答案4

sed -n '/.*_.*_.*/!p' file.txt

输出

apple_ig
dog_ig
orange_ig
goat_ig

相关内容