Linuxのファイルから特定の行番号を削除する(変数として渡される)

Linuxのファイルから特定の行番号を削除する(変数として渡される)

2つのファイルがあります。 1つは(不要な)行のリストを持ち、もう1つのSeqlistテキストファイル(その行を削除しようとしている)は次のように言います。ContentFile

$cat Seqlist         

3
4
7
10
345
7000
67001
.....

私は以下を使用しました:

$ while read A; do sed -e "$((A)d" ContentFile; done < Seqlist >OUTPUT

ところで、3行目の番号だけを消しました。残りの行は削除されません。

ベストアンサー1

d行番号ファイルの各番号の末尾にを追加すると、sed入力から指定された行を削除するスクリプトに変換されます。もしそうなら、とても簡単です。

$ sed -f lines_to_delete.sed file_with_lines.txt

スクリプトsedは次のように生成できます。

$ sed -e 's/$/d/' file_with_numbers.txt >lines_to_delete.sed

おすすめ記事