문자를 포함하지 않는 단어 인쇄

문자를 포함하지 않는 단어 인쇄

내 파일의 형식은 다음과 같습니다.

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

관련 정보