我有一个file.txt,文件的每一行都是这样的:
ABLED EY B AH L D
ABLER EY B AH L ER
Run Code Online (Sandbox Code Playgroud)
我希望每行的第二部分:EY B AH L D或者EY B AH L ER,例如,小写,保持其余的大写.我该怎么做?
非常感谢你提前.
while read first second; do
second=$(echo "$second" | tr [:upper:] [:lower:])
printf '%s\t%s\n' "$first" "$second"
done < file.txt
Run Code Online (Sandbox Code Playgroud)
输出:
ABLED ey b ah l d
ABLER ey b ah l er
Run Code Online (Sandbox Code Playgroud)
另外两种方法可以在没有调用的情况下在KornShell,pdksh或Bash中执行此操作 tr
在变量上设置"小写"标志(仅限KornShell和兼容的shell):
typeset -l second
while read first second; do
printf '%s\t%s\n' "$first" "$second"
done < file.txt
Run Code Online (Sandbox Code Playgroud)
使用Bash的大小写修改参数扩展修饰符(仅限Bash!):
while read first second; do
printf '%s\t%s\n' "$first" "${second,,}"
done < file.txt
Run Code Online (Sandbox Code Playgroud)