ここで何を見逃しているのか理解できません。
$ echo 'testing' | sed -E 's/([a-z]*)ing/\1ing/g'
ing
出力が元にtesting
戻りたいですか?入力が飲み込まれているようです。つまり、グループが一致します。ところで、なぜ吐き出さないのですか?\1
test
\1
私はxonshシェルとGNU sed v4.3を使用するmacOS 10.12.2を使用しています。
答え1
xonsh(またはPython)がを飲み込んでいることがわかったので、\1
sedは実際にこれをチェックし、's/([a-z]*)ing/ing/g
出力はもちろんその入力に対して正確です。
私は持っていますここで問題が開かれました。これに対する回避策は、Python raw文字列を使用することです。
$ echo 'testing' | sed -E r's/([a-z]*)ing/\1ing/g'
testing
\\1
これは、望ましくない操作を続行するよりも、POSIXシェルでエラーが発生するescaping()よりも望ましいです\1
。
しかし、@adqm ありがとう、二重引用符およびエスケープされたバックスラッシュはxonshとbashの間で移植可能です。
$ echo 'testing' | sed -E "s/([a-z]*)ing/\1ing/g"