特定の行の各単語の最初の文字を除いて、大文字を小文字に置き換えます。

特定の行の各単語の最初の文字を除いて、大文字を小文字に置き換えます。

大文字でのみ受け取った名前を変更したいと思います。これらの名前は他の情報と混在しているため、そのままにしてください。AUTH:行の先頭で名前を変更する必要がある行として識別します。

TITLE: Average title
AUTH: SUPERMAN
AFF: Something
AUTH: THE NEW ONE
AFF: Berlin
AUTH: MARS-MENSCH
AFF: Planet Mars

それではそうです。

TITLE: Average title
AUTH: Superman
AFF: Something
AUTH: The New One
AFF: Berlin
AUTH: Mars-Mensch
AFF: Planet Mars

私の問題はUnixの問題に関連していますが、違います」キリルアルファベットの最初の(大文字)文字を除くすべての文字を小文字にします。「ローマ字を使用しても提案されたソリューションを適用できなかったからです。

私が使用する対応する行を取得するには、何に変更するのかわからない部分にegrep -rl ^"AUTH:"従ってください。| xargs sed -r -i '/(AUTH:)/ ??? /\1/g'???

ベストアンサー1

> sed '/^AUTH/{s/^AUTH: //;s/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\u\1\L\2/g;s/^/AUTH: /;}' file
TITLE: Average title
AUTH: Superman
AFF: Something
AUTH: The New One
AFF: Berlin
AUTH: Mars-Mensch
AFF: Planet Mars

おすすめ記事