簡體   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