テキストファイルの各行について、セミコロンの後の最初の文字を大文字にします。

テキストファイルの各行について、セミコロンの後の最初の文字を大文字にします。

このようなテキストファイルがあります。

John Doe;john Doe is ...;he lives in ...
Mike Nelson;mike Nelson works for ...;he makes ...
Marcy William;marcy's mother is ...;marcy travels a lot... 

セミコロンの後のすべての文字を大文字に変換したいので、最終結果は次のようになります。

John Doe;John Doe is ...;He lives in ...
Mike Nelson;Mike Nelson works for ...;He makes ...
Marcy William;Marcy's mother is ...;Marcy travels a lot...

残りはそのままにしておきます。

ファイルにはアクセント文字が含まれており、UTF-8でエンコードされています。

ベストアンサー1

GNU Sed:

sed 's/;[[:lower:]]/\U&/g' file

セミコロン( );[[:lower:]]の後のすべての小文字は大文字にします。\U特別な順序。このgフラグは、1行のすべての項目を置き換えます。

GNU Sedが利用できない場合は、POSIX準拠の代替手段を使用できます。前任者

printf '%s\n' '%s/;[[:lower:]]/\U&/g' '%p' | ex file

代替コマンドは同じですが、すべての行をアドレス指定に使用する必要があります%%p印刷物。ファイルを直接%p変更するにはx

おすすめ記事