Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私はいくつかのテキストコンテンツを持っています。
パイプ[]を使用してテキストを置き換えたい。 このスクリプトを使用できます:!!!cat myfile | sed -r 's/\[.+\]/!!!/'
[]
!!!
cat myfile | sed -r 's/\[.+\]/!!!/'
どうすれば複数行.できるので、CR、LFなどを処理できますか? たぶん、awk、perl、または同様のものですか? 最も単純なソリューションが望ましいです。
.
sed -n 'H; $ {x;s/\[.+\]/!!!/p;}' myfile
sed はデフォルトで行ごとに動作するため、デフォルトでは CR LF はありません。H、バッファ内の読み取り時にすべての行をキャッチし、$ は最後の行で反応します (CR を含むすべてのファイルがバッファリングされます)、x はバッファを取得し、p が結果を出力する前に sed が全体に適用されます (-n of sed remove指定印刷以外の出力)