特殊文字を含むすべてのテキストを何度も無視する方法は?

特殊文字を含むすべてのテキストを何度も無視する方法は?

入力例:

apple_ig
rabbit_cat_ig
dog_ig
bird_duck_ig
orange_ig
goat_ig

予想出力:

apple_ig
dog_ig
orange_ig
goat_ig

文字列全体にアンダースコア_が複数回含まれるデータは無視する必要があります。

バッシュ, ksh, sed, grep, awk

答え1

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

答え2

awk最大1つの下線付きの行のみを印刷するには、を使用します。

$ 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

関連情報