次の行を含むファイルがあります。
1
apple
2
orange
3
banana
4
mango
5
coconut
パターンのリストがあります。
1
3
5
次のようにするために、パターンリストを使用してこの行(およびそれ以降の行)を削除したいと思います。
2
orange
4
mango
1つのコマンドで毎日手動で入力できないパターンが多いため、リストを使用する必要があります。
ベストアンサー1
sed+生地解決策:
sed -E "/\<(`paste -s -d'|' patterns`)\>/{N;d;}" file
出力:
2
orange
4
mango
paste -s -d'|' patterns
- 正規表現シフトグループを取得するために区切り文字patterns
として使用されるファイル行を結合します。|
(1|3|5)
N
- パターン空間に次の行を追加します。d
- パターン空間の行削除