내 파일의 형식은 다음과 같습니다.
this!,is!,another!,test,yes!
this!,is!,another!,column,yes!
no,not!,another!,column
내 출력은 다음과 같아야합니다
test
column
no
"!" 문자를 포함할 수 없습니다.
여러 sed 및 (e)grep 명령을 시도했지만 그 중 아무 것도 작동하지 않았습니다.
답변1
다음과 같이 시도해 보세요.
tr ',' '\n' < file.txt | grep -v \!
답변2
당신이 정말로 원한다고 가정 해 봅시다 ...
test
column
no
column
... awk
해결책은 다음과 같습니다.
awk -v RS=, '{ for (i=1; i<=NF; i++) if($i !~ /!/) print $i; }'
답변3
GNU grep이 필요합니다:
grep -oP '(?<=^|,)[^!]+(?=,|$)'
귀하의 의견을 바탕으로 다음을 보고합니다.
test
column
no
column
"열"이 두 번 표시되는 것을 원하지 않는 경우:grep -oP '(?<=^|,)[^!]+(?=,|$)' | sort -u
답변4
텍스트 파일이 test.txt
다음과 같다고 가정합니다.
for word in $(cat test.txt | sed -e 's/,/ /g'); do if [ ! "$( echo "$word" | grep '\!' )" == "$word" ]; then echo "$word"; fi; done
나에게주세요:
test
column
no
column