次のようなCSVの行があるとします。
|Foo|,,,,,,,,|Bar|,,,,,
|カプセル化機能はどこにあり、,区切り文字はどこにありますか(ご想像のとおり)。
ただし、これらの空のフィールドに入力する必要のあるコードがあり、代わりにこの行を次のようなものに変換するとします。
|Foo|,||,||,||,||,||,||,||,|Bar|,||,||,||,||,
(末尾のコンマは後で処理できます)このCSVでこのsedコマンドを使用して、目的の結果を取得しようとしました。
sed 's/,,/,||,/g'
ただし、正規表現パターン,,は幅がゼロではないため、1つのフィールドしか処理していなくても、ライン上をスキャンすると2つ移動します。結果は次のようになります。
|Foo|,||,,||,,||,,||,|Bar|,||,,||,,
問題は、これまでのところ置換を行うと、次のようになることです。
|Foo|,||,,,,,,,|Bar|,,,,,
の周りのコンマはすでに「処理」されており、最後のコンマを含まない、登録した最後のコンマ||の次のペアに移動します,||,。
sedを使用してこの置換を行うにはどうすればよいですか?