Bash

在變數的最後一個字元之前添加空格

  • March 30, 2020

我有一個變數,其中包含一些數字,然後是一個字母

範例: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的最後一個字元放在一起。

引用自:https://unix.stackexchange.com/questions/486218