ソースファイルからテキストを検索して削除する

ソースファイルからテキストを検索して削除する

複数のファイルからブロックテキストを検索して削除したいです。

一致するテキストブロックがファイルにあります。ディレクトリを解析し、/home/user/myblock.txtディレクトリ内のすべてのファイルから/home/user/repコンテンツを削除したいとします。mybloc.txt

ベストアンサー1

削除するテキストブロックが複数行にまたがっていて、各個々のファイルがRAMに収まる場合、最も簡単な方法は各ファイルをRAMに完全にロードしてグローバル文字列置換を実行することです。 Perlを使用すると、レコード区切り文字を設定せずにレコード-i -pごとにファイルレコードを変更することでこれを簡単に実行できます-0777(基本レコード区切り文字は改行です)。

perl -0777 -i -pe '
    BEGIN {
        open BLOCK, "<", "/home/user/myblock.txt";
        $block = <BLOCK>;
        die unless length($block);
        close BLOCK;
    }
    s/\Q$block//g
' /home/user/rep/*

おすすめ記事