重击:在定界符上分割,但保留定界符

埃伯纳

我想使用定界符将String拆分为数组,并保留这些定界符。我尝试使用IFS,但它重新定义了分隔符。

例如:

ligne="this.is/just(an]example"
IFS='}|//|)|(| |{|[|]|.|;|/"|,' read -ra ADDR <<< "$ligne"
for i in "${ADDR[@]}"; do
   echo $i
done

我希望结果是这样的:

this
.
is
/
just
(
an
]
example

谢谢你的帮助!

阿努巴瓦

您可以使用grep-o选项:

grep -oE '[^][^./(){};:,"]+|[][^./(){};:,"]' <<< "$ligne"

this
.
is
/
just
(
an
]
example

使用的正则表达式是基于2个交替的交替:

  • [^][^./(){};:,"]+:匹配不在字符类别中的任何字符的1+
  • |: 要么
  • [][^./(){};:,"]:匹配字符类中的任何字符

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章