Bash
在變數的最後一個字元之前添加空格
我有一個變數,其中包含一些數字,然後是一個字母
範例:242M
我需要在該變數的最後一個字元之前添加一個空格,以便在回顯時看起來像 242 M
我已經嘗試過 sed 但從我發現的內容看來,它只能用於從文件中讀取,而我無法讓它用於修改變數。
謝謝!
應該適用於任何 POSIX shell 的版本,而不僅僅是
bash
:printf '%s\n' "${a%?} ${a#"${a%?}"}"
裡面的額外引號
${a#...}
是為了防止來自變數的特殊字元:$ a='10*M'; printf '%s\n' "${a%?} ${a#"${a%?}"}" 10* M
如果沒有它們,第二個變數擴展會變成
${a#10*}
,並且10* *M
會被回顯。
如果其他答案不起作用(例如在 macOS 上),您也可以嘗試
a="${a%?} ${a: -1}"
它將沒有最後一個字元的a 、一個空格和 a的最後一個字元放在一起。