各行に1つずつ、たくさんの単語が含まれているファイルがあります。また、1行にすべてコンマで区切られた単語を含む2番目のファイルがあります。私がやろうとしているのは、コンマで区切られた各単語にアクセスすることです。各単語を取得したら、最初のファイルのファイルからその単語を削除します。
区切りファイル内の各単語にアクセスできません。
助けてくれてありがとう!
各行に1つずつ、たくさんの単語が含まれているファイルがあります。また、1行にすべてコンマで区切られた単語を含む2番目のファイルがあります。私がやろうとしているのは、コンマで区切られた各単語にアクセスすることです。各単語を取得したら、最初のファイルのファイルからその単語を削除します。
区切りファイル内の各単語にアクセスできません。
助けてくれてありがとう!
これを試してみてください:
grep -w -v -f <(tr ',' '\n' < 2nd_file) 1st_file
これはどう:
#!/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
に除外できます。
次のようなことを試してみてください:
sed -e 's/,/\n/g' fileWithCommas > tempfile
grep -v -f tempfile wordfile > newfile && mv newfile wordfile
rm tempfile