2016-06-16 5 views
1

noob質問。正規表現 - 前にない文字を置き換えてください。x

@の前の文字が

でない場合、私はあなたが(^|[^"])がグループである

sed -r 's/(^|[^"])@/\1","/g' 

を使用することができます。このコマンドにcat foo.csv | sed 's/@/","/g'

+2

'sedの/ [^"] @/"、"/g 'foo.csv' – sat

+0

私は 'sed -r' s /(^ | [^"]) \ 1 "、"/g 'foo.csv'も開始時に '@'にマッチします。 –

+0

質問の私の理解から、私はこれを思いつきます: 'sed 's/\(^ \ | [^"] \)@/\ 1 "、"/g " – Kent

答えて

2

をインクリメントする”,”によってすべて@を交換したいと思います行の先頭または"以外の文字と一致する。 \1は、グループ1(空文字列または[^"]ブラケット式と一致する文字)の逆参照です。 -rなしの代替構文について

Kent's commentを参照してください(彼らはのような特殊な正規表現のメタ文字を動作するためにあなたが|()などの特殊文字をエスケープする必要があります)。

+0

[こちらはIDEONEのデモです](https://ideone.com/ Uq3qy5)。 –

関連する問題