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

标签 string bash shell

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

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

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

有人可以帮帮我吗?

最佳答案

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

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

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

关于string - 如何用 bash 中的另一个字符替换字符串的最后一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169175/

相关文章:

c - 如何使用C从键盘读取字符串?

java - 打印二维锯齿状数组中的字符串组合

BASH:编写脚本递归遍历 N 级目录

regex - 为什么 sed 不打印可选组?

linux - 如何 grep ls 和 grep 返回的文件内容?

c - 如何在 C 中正确使用字符串?

Java算法String-ID-生成分层父子

regex - Linux bash shell 中带有多个点的正则表达式会给出奇怪的结果

regex - "sed"特殊字符处理

c++ - 将 std::string 转换为 char* const* 的数组