
私は bash スクリプトについてはまったくの初心者なので、どんな助けでもいただければ幸いです。以下は私が達成したいことです。
テキスト ファイルが 2 つあります。最初のファイルで、2 番目のファイルのコンマの前の文字列と一致する行をすべて削除します。
例えば
ファイル1:
this_is_a_test.txt,11dsdsdsdsd
this_is_a_test24.txt,545467ddd
this_is_a_test22,121244442
ファイル2:
this_is_a_test.txt
this_is_a_test24.txt
this_is_a_test22
希望する出力: 空白
答え1
以下を使用できます:
grep -vFf file2 file1
カンマの後ろは一致しますが、行は削除されることに注意してください。
答え2
簡単なsed
トリックでこれを実現できます。
IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
sed -i '/^'"$i"',/d' file1.txt
done