Rav*_*ven 2 arrays awk split camelcasing
如何使用 split 函数将驼峰式字符串拆分为 awk 中的数组?
输入:
STRING="camelCasedExample"
Run Code Online (Sandbox Code Playgroud)
期望的结果:
WORDS[1]="camel"
WORDS[2]="Cased"
WORDS[3]="Example"
Run Code Online (Sandbox Code Playgroud)
糟糕的尝试:
split(STRING, WORDS, /([a-z])([A-Z])/);
Run Code Online (Sandbox Code Playgroud)
不好的结果:
WORDS[1]="came"
WORDS[2]="ase"
WORDS[3]="xample"
Run Code Online (Sandbox Code Playgroud)
你不能split()
单独做到这一点,这就是为什么 GNU awk 具有patsplit()
:
$ awk 'BEGIN {
patsplit("camelCasedExample",words,/(^|[[:upper:]])[[:lower:]]+/)
for ( i in words ) print words[i]
}'
camel
Cased
Example
Run Code Online (Sandbox Code Playgroud)