특수 문자가 포함된 모든 텍스트를 여러 번 무시하는 방법은 무엇입니까?

특수 문자가 포함된 모든 텍스트를 여러 번 무시하는 방법은 무엇입니까?

입력 예:

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

관련 정보