9

各行の最初の文字をファイルの最後まで小文字に変換したいと思います。シェルスクリプトを使用してこれを行うにはどうすればよいですか?

私はこれを試しました:

plat=`echo $plat |cut -c1 |tr [:upper:] [:lower:]``echo $plat |cut -c2-`

ただし、これは最初の文字のみを小文字に変換します。

私のファイルは次のようになります。

Apple
Orange
Grape

期待される結果:

apple
orange
grape
4

4 に答える 4

12

あなたはそれを行うことができますsed

sed -e 's/./\L&/' Shell.txt

(やったほうが安全かもしれません。

sed -e 's/^./\L&\E/' Shell.txt

これを拡張したい場合。)

于 2012-04-09T08:01:23.563 に答える
2

Pure Bash 4.0+ 、パラメータ置換:

>"$outfile"                         # empty output file
while read ; do
    echo "${REPLY,}" >> "$outfile"  # 1. character to lowercase
done < "$infile"  
mv "$outfile" "$infile"
于 2012-04-09T08:23:57.413 に答える
2

Try:

plat=`echo $plat |cut -c1 |tr '[:upper:]' '[:lower:]'``echo $plat |cut -c2-`
于 2012-04-09T08:01:44.583 に答える