2011-07-12 23 views
4

;;\n(セミコロンと改行が続きます)と置き換えてsedに入れる方法はありますか?を置き換える ';' '; n'

私は

sed s/;/\\n/g file 

sed -e '/;/G' file 

のオフに構築しようとしましたが、私はあなたがインラインでそれをしたいと仮定しています

答えて

4

あなたは少しカンニングする必要があります。bashにあなたは

sed $'s/;/;\\\n/g' 

または、移植性(POSIX)を言うことができます:

sed "s/;/;$(printf '\\\n')/g" 

sedは移植性/確実にどこかが、中にバックスラッシュ・エスケープを処理しません。パターンがあり、そこにさえ制限されています(POSIXは\nしか扱われず、\tまたは他のものではありません)。また、\nの前にバックスラッシュが必要なので、sedはコマンドの最後にそれを読み取らないことに注意してください。

+0

2番目のsedコマンドは、 'sed:-e expression ... unterminated 's' command'を与えています.bashで実行すると、最初のコマンドはうまく動作します。 – pseudosudo

1
sed -ie 's/;/;\n/g' <file> 

を動作させるのいずれかを取得することはできませんファイル内で "i"を削除し、そうでない場合は "-e"を使用してください。

関連する問題