我的文件採用以下格式:
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
如果您不希望“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