Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

sedを使って": \1 not defined in the RE"などと出たらキャプチャの構文が間違っている

またやってしまいました。
sedでパースした文字をキャプチャしようとしたところ、
何度目にしたか分からないエラーが。

": \1 not defined in the RE

この場合、キャプチャのカッコをエスケープさせるか、あるいは"-E"オプションを使ってやる必要があります

$ echo "東京都調布市" | sed -e 's;\(都\);\1  ;'
東京都  調布市

$ echo "東京都調布市" | sed -E 's;(都);\1  ;'
東京都  調布市

参考もと

stackoverflow.com