我有一個文件,其中有很多單詞,每行一個。我還有第二個文件,所有文字都用逗號分隔。我想要做的是訪問由逗號分隔的每個單詞。一旦我有每個詞,我想刪除第一個文件中的文件的單詞。Bash腳本:解析用逗號分隔的字符串
我無法訪問分隔文件中的每個單詞。
感謝您的幫助!
我有一個文件,其中有很多單詞,每行一個。我還有第二個文件,所有文字都用逗號分隔。我想要做的是訪問由逗號分隔的每個單詞。一旦我有每個詞,我想刪除第一個文件中的文件的單詞。Bash腳本:解析用逗號分隔的字符串
我無法訪問分隔文件中的每個單詞。
感謝您的幫助!
如何:
#!/bin/bash
# split_comma
OIFS=$IFS
IFS=','
for w in $(cat $1)
do
# Do stuff with each word
echo $w
done
IFS=$OIFS
$ ./split_comma test_file
其中test_file
包含this,is,a,test
回報:
this
is
a
test
然後,你可以很容易地使用grep
篩選出來的話較大,線分隔文件。
嘗試這樣做:
grep -w -v -f <(tr ',' '\n' < 2nd_file) 1st_file
您可以嘗試這樣的事:
sed -e 's/,/\n/g' fileWithCommas > tempfile
grep -v -f tempfile wordfile > newfile && mv newfile wordfile
rm tempfile
小問題(有人曾經指出我):如果'IFS'是*未設置*最初,之後它被設置爲空字符串。用'$ {IFS-:} OIFS = $ IFS'和'$ {OIFS-:} IFS = $ OIFS'修復。 – chepner 2013-03-21 19:52:42