回答:
GNU sedの場合:
find . -type f -print0 | xargs -0 sed -i /KeyWord/d
OSX sedの場合:
find . -type f -print0 | xargs -0 sed -i '' /KeyWord/d
最初のコマンドfindは、すべての標準ファイル(ディレクトリ、パイプなどではない)を検索し、それらを区切って出力し\0ます(したがって、ファイル名にはスペース、改行などを含めることができます)。
2番目のコマンドは、xargsの出力を読み込みfind、グラブセパレータ(に基づいてリスト\0ための-0)、呼び出すsed -i [...]リストから追加パラメータでは、(sed多くのファイルが存在する場合のパラメータの最大長が制限されるように、複数回呼び出されます各呼び出し)。
このsedコマンドは、インプレース(-i)を変更します。
に関しては/KeyWord/d、正規表現を含む行を削除しますKeyWord。
sed(単純だが珍しい)構文を適切に理解することを学び、関連するツールの詳細については、適切なマンページを参照してください。
そして、私が促進したいzshので、拡張されたグロブを持つソリューション:
sed -i /KeyWord/d **/*(.)
s/KeyWord//g(代替KeyWord空の文字列(「」付き)、gすべての(だけでなく、各行の最初の)について。