我想将每行的第一个字母转换为小写直到文件末尾。如何使用 shell 脚本来做到这一点?
我试过这个:
plat=`echo $plat |cut -c1 |tr [:upper:] [:lower:]``echo $plat |cut -c2-`
但这只会将第一个字符转换为小写。
我的文件如下所示:
Apple
Orange
Grape
预期结果:
apple
orange
grape
你可以这样做sed
:
sed -e 's/./\L&/' Shell.txt
(可能更安全
sed -e 's/^./\L&\E/' Shell.txt
如果你想扩展它。)
尝试:
plat=`echo $plat |cut -c1 |tr '[:upper:]' '[:lower:]'``echo $plat |cut -c2-`
纯 Bash 4.0+ ,参数替换:
>"$outfile" # empty output file
while read ; do
echo "${REPLY,}" >> "$outfile" # 1. character to lowercase
done < "$infile"
mv "$outfile" "$infile"
这是一个仅使用 POSIX sed 功能的 sed 命令:
sed -e 'h;s,^\(.\).*$,\1,;y,ABCDEFGHIJKLMNOPQRSTUVWXYZ,abcdefghijklmnopqrstuvwxyz,;G;s,\
.,,'
这是两行,第一行以反斜杠结尾以引用换行符。