Bash Scripting:解析用逗号分隔的字符串

时间:2013-03-21 18:38:30

标签: bash

我有一个文件中有很多单词,每行一个。我还有一个第二个文件,在逗号分隔的一行上都有单词。我想要做的是访问由逗号分隔的每个单词。一旦我有了每个单词,我想删除第一个文件中该文件的那个单词。

我无法访问分隔文件中的每个单词。

感谢您的帮助!

3 个答案:

答案 0 :(得分: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过滤较大的行分隔文件中的单词。

答案 1 :(得分:1)

尝试这样做:

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

答案 2 :(得分:0)

您可以尝试这样的事情:

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