输入示例:
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