次のようにソートされたCSVの最初の文字を大文字にしようとしました:
a23;asd23;sdg3
私が欲しいのは、このような出力です
a23;Asd23;Sdg3
したがって、最初の文字列はそのままである必要がありますが、2 番目と 3 番目の文字列の最初の文字は大文字にする必要があります。AWK と SED を試しましたが、適切な解決策が見つかりませんでした。誰か助けてくれませんか?
次のようにソートされたCSVの最初の文字を大文字にしようとしました:
a23;asd23;sdg3
私が欲しいのは、このような出力です
a23;Asd23;Sdg3
したがって、最初の文字列はそのままである必要がありますが、2 番目と 3 番目の文字列の最初の文字は大文字にする必要があります。AWK と SED を試しましたが、適切な解決策が見つかりませんでした。誰か助けてくれませんか?
セミコロンに続くすべての文字を大文字にするだけです。
sed -e 's/;./\U&\E/g'
Bash (バージョン 4 以降) には「最初の大文字」演算子 があります${var^}
が、この場合は を使用する方が良いと思いますsed
:
sed -r 's/(^|;)(.)/\1\U\2/g' <<< "a23;asd23;sdg3"
echo "a23;asd23;sdg3" | perl -ne 's/(?<=\W)(\w)/ uc($1) /gex;print $_'
a23;Asd23;Sdg3
$ 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