単語リストがありますが、1文字は小文字で、1文字は大文字に設定したいと思います。たとえば、「情報」という単語を「情報」と「情報」にしたいと思います。
ベストアンサー1
牛に似た一種の栄養sed方法:
- 小文字で始まる:
s="information"
sed 's/\(.\)\(.\)/\L\1\U\2/g' <<< $s
iNfOrMaTiOn
- 大文字で始まる:
s="information"
sed -E 's/(.)(.){,1}/\U\1\L\2/g' <<< $s
InFoRmAtIoN
\L
- 代替項目をまたはいずれかになるまで小文字に変換します\U
。\E
\U
\L
- or が見つかるまで代替文字を大文字に変換します。\E
愚かな(GNU awk)方法:
awk -v FPAT="[a-z]" '{ s=""; for(i=1;i<=NF;i++) { s=s""((i%2)? toupper($i) : $i)} print s }' <<< $s
InFoRmAtIoN
FPAT="[a-z]"
- フィールド値を表すパターン
その他アッ関数のバリアントを使用してくださいsplit()
。
awk '{ n=split($0,a,""); s="";
for(i=1;i<=n;i++) { s=s""((i%2)? toupper(a[i]): tolower(a[i])) } print s }' <<< $s
InFoRmAtIoN
split()
生成された要素の数を返します。