小编Cyb*_*ems的帖子

遍历字符串数组,将正则表达式应用于 Korn Shell 中的每个元素

我有一个名为的字符串数组,names其中包含带有一些后续垃圾数据的名称。像这样

Jill Shortz, City Contractor, America
Bill Torts, Family Doctor, Canada
Will Courtz, Folk DJ, Bulgaria
Phil-Lip Warts, Juggler, India
Run Code Online (Sandbox Code Playgroud)

我想通过names使用正则表达式仅提取前两个单词进行迭代(^\w+-*( *\w+)*)并将它们覆盖回,names以便它将包含

Jill Shortz
Bill Torts
Will Courtz
Phil-Lip Warts
Run Code Online (Sandbox Code Playgroud)

这是我尝试的方式,但我的 AIX 机器不喜欢-P在 Perl 模式下执行的参数

for((i=0;i<${#names[@]};++i)); do
        names[$i]=`grep -P '(^\w+-*( *\w+)*)' -o <<<"${names[i]}"`
done
Run Code Online (Sandbox Code Playgroud)

grep ksh array aix regular-expression

3
推荐指数
1
解决办法
1425
查看次数

标签 统计

aix ×1

array ×1

grep ×1

ksh ×1

regular-expression ×1