より良い管理システムに切り替えるので、各ソースファイルの上部にあるすべての冗長ログを削除したいと思っています。メモ帳++では、 "ファイルを置き換える"と一致するものを\A(//.*\n)+
に置き換えて空白にすると、結果を得ることができました。しかしLinuxでは、私はそのような運がないので、「xargs」と「sed」に頼る必要があります。sedを使用するときにxargsのputをリダイレクトする方法
私が使用しているsedの式は次のとおりです。
確かに醜いsed '1,/^[^\/]/{/^[^\/]/b; d}'
動作するようには思えません。
私が抱えている問題は、システムですべてのソースファイルをフィードするために 'xargs'を使って実行しようとするときです。出力を '取り除かれた'ファイルにリダイレクトできません。オリジナルをコピーする。
私はラインで何かしたい:私はすでにあまりにも多くの引用符を使用していて、私は受信環境(シェル)に至るまで、「>」を渡して悲しみを抱えているが
find . -name "*.com" -type f -print0 | xargs -0 -I file sed '1,/^[^\/]/{/^[^\/]/b; d}' "file" > "file.stripped"
を。私はエスケープとシェル "ラッパー"のすべての方法を試してみましたが、私はボールをプレイすることができません。
誰かが正しい方向に向けるように気をつけてください。
ありがとう、 Slarti。
あなたのsed実装では、 '-i'オプションをサポートしていますか? – choroba
はい、そうです。それは人生を楽にします。私はそれを行ってあなたに戻ってきます;) – Slartibartfast
なぜあなたはfindで-execオプションを使うべきですか?これと似た何か、 'find。 -name "* .com" -type f -print0 -exec sed '1、/^[^ \ /]/{/^[^ \ /]/b; d} '{}> "file.stripped" \; ' –