テキストファイルの文字列リストに指定された文字列行を削除するには、sedを繰り返します。

テキストファイルの文字列リストに指定された文字列行を削除するには、sedを繰り返します。

テキストファイルにリストされている紙が私のOTUテーブルに見つかった場合は、このsedスクリプトを使用してOTUテーブルの行全体を削除します。

現在動作していないスクリプトは以下にありますが、動作させることはできません。とにかく、できるだけ早くお手伝いいただきありがとうございます。

(各行を読み込み、私のテーブルから検索して行を削除する、infile)

for i in $(cat /my/path/species.txt); do 
    sed -i '/"$i"/d' /my/path/ITS.OTU.table.tsv
done

非常にありがとう

ベストアンサー1

grep -v -xF -f /my/path/species.txt /my/path/ITS.OTU.table.tsv >/my/path/ITS.OTU.table.tsv.new

これで書くことができます/my/path/ITS.OTU.table.tsv.new。その内容は元のファイルと同じです/my/path/species.txt

この-xFオプションは、同じ文字列の行全体の一致を強制し、指定され-f filenameたファイルから一致する行を読み取ります。-v一致の意味を裏返して行だけを残します。いいえ一致すると返されます。

/my/path/species.txt読み取った文字列が一致するように一致を軽減する必要がある場合どこかに各行からオプション/my/path/ITS.OTU.table.tsvを削除します-x

各行で一致をテストする場所を知っている場合は、awkそのデータビットを比較できますが、現在はデータがどのように見えるかわかりません。

おすすめ記事