2013-03-21 57 views
0

我有一個文件,其中有很多單詞,每行一個。我還有第二個文件,所有文字都用逗號分隔。我想要做的是訪問由逗號分隔的每個單詞。一旦我有每個詞,我想刪除第一個文件中的文件的單詞。Bash腳本:解析用逗號分隔的字符串

我無法訪問分隔文件中的每個單詞。

感謝您的幫助!

回答

1

如何:

#!/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篩選出來的話較大,線分隔文件。

+0

小問題(有人曾經指出我):如果'IFS'是*未設置*最初,之後它被設置爲空字符串。用'$ {IFS-:} OIFS = $ IFS'和'$ {OIFS-:} IFS = $ OIFS'修復。 – chepner 2013-03-21 19:52:42

1

嘗試這樣做:

grep -w -v -f <(tr ',' '\n' < 2nd_file) 1st_file 
0

您可以嘗試這樣的事:

sed -e 's/,/\n/g' fileWithCommas > tempfile 
grep -v -f tempfile wordfile > newfile && mv newfile wordfile 
rm tempfile