1

純粋に楽しみのために、、、、、正規表現awk、または Python や Perl を除く他の Unix ツールを使用して、すべての小文字のテキストを他のすべての文字の大文字に変換する方法を考えていました。sedtr

これまで私は試しました

echo "hello" | sed s/\([a-z]\)/\U\1/g 

目的の出力は である必要がありますHeLlO。誰かがこれを改善するか、別のアプローチを提供していただければ幸いです。

4

3 に答える 3

1
$ sed 's/[a-z].\?/\u\0/g' <<< hello
HeLlO

(免責事項: これは非標準機能に依存する場合があります。GNU sed バージョン 4.2.1 で実行しました。)

于 2013-08-07T06:22:57.273 に答える
1

これはうまくいくかもしれません(GNU sed):

sed 's/[[:lower:]][^[:alpha:]]*\([[:alpha:]]\|$\)/\u&/g' file
于 2013-08-07T15:56:16.027 に答える
1

あなたのためのawk方法:

echo "hello" | awk '{for(i=1;i<=NF;i+=2)$i=toupper($i)}1' FS= OFS=
HeLlO
于 2013-08-07T07:59:30.770 に答える