9

次のようにソートされたCSVの最初の文字を大文字にしようとしました:

a23;asd23;sdg3

私が欲しいのは、このような出力です

a23;Asd23;Sdg3

したがって、最初の文字列はそのままである必要がありますが、2 番目と 3 番目の文字列の最初の文字は大文字にする必要があります。AWK と SED を試しましたが、適切な解決策が見つかりませんでした。誰か助けてくれませんか?

4

4 に答える 4

17

セミコロンに続くすべての文字を大文字にするだけです。

sed -e 's/;./\U&\E/g'
于 2010-10-06T12:27:13.020 に答える
7

Bash (バージョン 4 以降) には「最初の大文字」演算子 があります${var^}が、この場合は を使用する方が良いと思いますsed:

sed -r 's/(^|;)(.)/\1\U\2/g' <<< "a23;asd23;sdg3"
于 2010-10-06T12:27:38.447 に答える
1
echo "a23;asd23;sdg3" | perl -ne 's/(?<=\W)(\w)/ uc($1) /gex;print $_'

a23;Asd23;Sdg3
于 2010-10-06T12:26:36.857 に答える
1
$ var="a23;asd23;sdg3"
$ echo $var | awk -F";" '{for(i=2;i<=NF;i++) $i=toupper(substr($i,i,1))substr($i,1) }1' OFS=";"
a23;Sasd23;Gsdg3
于 2010-10-06T12:28:37.617 に答える