私の状況は次のとおりです。LinuxのGREP/SED [xargsの]ファイル内のパターンと行番号を見つけ、SED
私は長蛇の列で発生する、特殊文字を含む、非常に長いテキスト文字列を持っていますさまざまなファイルで。文字列を含むファイルは、ファイルシステム全体に存在します(Linux)。文字列は、ファイル内のさまざまな行番号に存在する可能性がありますが、ファイルごとに1回発生します。ただし、文字列には特定のパターンが含まれており、文字列全体の識別にキー入力できます。
GREP -lir mystringprefix/pathを使用して、文字列の '接頭辞'をキー入力することによって、文字列を含むファイルの名前を見つける方法を知っています。
grep -n "prefix"を使用してGREPとSEDを使用してファイル内の文字列の行番号を調べる方法を知っていますfile.name | sed -n "s/^([0-9] )[:]。/\ 1/p "となります。
SEDを使用して、sed -i xd/path/file(xは削除する行番号)を使用して、対象文字列を含むファイル内の行を削除する方法を知っています。
私の質問は、その後にSEDに名前と行番号の両方を渡し、私はパターンが含まれているファイルを特定するために一緒にこのすべてを置くことができるか、ファイル内の行番号を決定するためにGREPに名前を渡しです行を削除しますか?
ファイルシステムの特定の場所から開始し、再帰的に検索/削除するようにする必要があります。
ありがとうございます。
マニュアルページのkのSEDコマンドラインスイッチが見つかりません。そのスイッチは何をしていますか? (あなたの応答はまた、GREP -lirZを使って\ 0を強制することができたことを示唆しています)。 – GWild
@GWild: '-ibk'は' -i bk'と似ていますが、変更時にバックアップファイルを作成するときに使用する接尾辞を指定しています。私は '-i.bak'を使用するとこれがより明白になると思われます。 – Sorpigal
残念ながら、私の場合はどちらの例も動作しません。私は "ジャンプのためのラベルを見つけることができません"というSEDエラーを受け取り、パターン文字列を参照します。私は試みた援助に感謝します。何らかの理由で、SEDは簡単なテキストで窒息しています。なぜ私は最初に行番号を欲しかったのか、それを渡すことができるのかということに行きます。 GREPは問題のない文字列を見つけます。 – GWild