私がそのようなものを持っていると仮定します:
echo "bLah BLaH blAH" | sed -r 's/([a-zA-Z ]+)/\L&; s/[a-z]/\u&/g'
「クレイジーケース」文字列を大文字と小文字が混在する(最初の文字は大文字、残りの文字は小文字)にするためのsedの非常に典型的な使用法
ただし、これは常に文字列全体に影響します。たとえば、さまざまなフレーバー ($tracknr - $artist - $title vs. $artist - $tracknr - $title) で「クレイジーな」mp3 ファイル名を解析したい場合、タイトルが外国語である場合があるため、事態はさらに複雑になります。フランス語や大文字と小文字が混在しているように、フランス語やイタリア語では見た目が醜いだけです。そのため、スペース、ダッシュ、スペースなどの区切り文字に到達するまで処理を続行したいと考えています。
したがって、's/.../...' 式を組み合わせて段階的に処理したいと考えています。ただし、次の sed replace 式のソース式として保存されたサブマッチを使用できるようにするために、前の式から部分式を「保存」する方法があれば便利です。
とにかくOOTBで動作すると思うなら、あなたは間違っています。セミコロンの後の 2 番目の式で '\1' 構文を使用して、前の式の部分式を参照することはできません (もちろん、2 番目の式自体で部分式を定義すると機能しますが、この可能性は今は考慮されていません)。私の場合、パーサーには不明であり、エラーが発生します
sed: -e expression #1, char (xx): invalid reference \1 on `s' command's RHS
そのようなことを実行するために実装されたものはありますか?