Linux

大寫字母前加空格

  • October 9, 2021

我有一個字元串:

AddData
TestSomething
TellMeWhoYouAre

等等。我想在大寫字母之前添加空格。我該怎麼做?

使用sed, 並假設您不希望單詞前面有空格:

$ sed 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in
Add Data
Test Something
Tell Me Who You Are

替換將查找緊跟在另一個非空白字元之後的大寫字母,並在兩者之間插入一個空格。

對於具有多個連續大寫字元的字元串,例如WeAreATeam,這將產生We Are ATeam. 要對此進行排序,請再次執行替換:

$ sed -e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' \
     -e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in

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