我有一个名为的字符串数组,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)