繁体   English   中英

如何用bash中的另一个字符替换字符串的最后一个字符?

[英]How can I replace the last character of a string with another character in bash?

我正在使用bash中的一个小代码,但我遇到了一个小问题。 我有一个字符串,我想用s替换该字符串的最后一个字母。

例如:我正在获取以c结尾的所有文件,并用s替换最后一个c

for file in *.c; do
   # replace c with s  
   echo $file

有人可以帮帮我吗?

for file in *.c; do 
   echo "${file%?}s"
done

在参数替换中,$ {VAR%PAT}将从变量VAR中删除与PAT匹配的最后一个字符。 壳型*? 可以用作通配符。

上面删除了最后一个字符,并附加“s”。

使用参数替换 以下完成后缀替换。 它用s替换了一个锚定在右边的c实例。

for file in *.c; do
   echo "${file/%c/s}"  
done

如果您想要使用循环,请使用rename实用程序

rename -f 's/\.c$/.s/' *.c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM