我正在使用bash中的一个小代码,但我遇到了一个小问题。
我有一个字符串,我想用s
替换该字符串的最后一个字母。
例如:我将截取c
中的所有文件,并将最后c
替换为s
。
for file in *.c; do
# replace c with s
echo $file
有人可以帮帮我吗?
答案 0 :(得分:14)
for file in *.c; do
echo "${file%?}s"
done
在参数替换中,$ {VAR%PAT}将从变量VAR中删除与PAT匹配的最后一个字符。
Shell模式*
和?
可用作通配符。
上面删除了最后一个字符,并附加“s”。
答案 1 :(得分:4)
使用parameter substitution。以下完成后缀替换。它用c
替换了一个锚定在右侧的s
实例。
for file in *.c; do
echo "${file/%c/s}"
done
答案 2 :(得分:0)
如果您想要使用循环
,请使用rename
实用程序
rename -f 's/\.c$/.s/' *.c