gpt4 book ai didi

regex - 在 Bash 中的一行内交换字符串

转载 作者:行者123 更新时间:2023-11-29 09:21:26 27 4
gpt4 key购买 nike

我正在使用 bash 脚本解析文档并输出它的不同部分。有一次我需要以以下形式查找并重新格式化文本:

(foo)[X]
[Y]
(bar)[Z]

类似于:

X->foo
Y
Z->bar

现在,我可以使用 RegEx grep 我想要的部分,但我无法在一行中交换两个元素并处理括号中的文本是可选的这一事实。这甚至可以结合使用 sed 和 grep 吗?

感谢您的宝贵时间。

最佳答案

你可以使用 sed:

sed -e 's/(\([^)]*\))\[\([^]]*\)]/\2->\1/' -e 's/\[\([^]]*\)]/\1/' file

这适用于您给定的输入示例:

X->foo
Y
Z->bar

如果要处理更多类型的输入,您可能需要使模式更严格。

关于regex - 在 Bash 中的一行内交换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com