Her*_*rth 10 linux command-line text-formatting
我有一个字符串:
AddData
TestSomething
TellMeWhoYouAre
Run Code Online (Sandbox Code Playgroud)
等等。我想在大写字母前添加空格。我该怎么做?
Kus*_*nda 18
使用sed
, 并假设您不希望单词前有空格:
$ sed 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in
Add Data
Test Something
Tell Me Who You Are
Run Code Online (Sandbox Code Playgroud)
替换将查找紧跟在另一个非空白字符之后的大写字母,并在两者之间插入一个空格。
对于具有多个连续大写字符的字符串,例如WeAreATeam
,这将生成We Are ATeam
。要对此进行排序,请再次运行替换:
$ sed -e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' \
-e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in
Run Code Online (Sandbox Code Playgroud)
JJo*_*oao 12
Perl,使用lookbehind 和lookahead 零宽度正则表达式:
$ perl -pe 's/(?<=\w)(?=[A-Z])/ /g' file.in
Tell Me Who You Are ## TellMeWhoYouAre
I Am A Regular Expression User ## IAmARegulaExpressionUser
Run Code Online (Sandbox Code Playgroud)
此版本还分隔连续的大写字母。
归档时间: |
|
查看次数: |
4423 次 |
最近记录: |