私のファイルの形式は次のとおりです:
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