文字なしで単語を印刷する

文字なしで単語を印刷する

私のファイルの形式は次のとおりです。

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

「列」が2回表示されたくない場合: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

関連情報