【发布时间】:2020-09-24 13:45:46
【问题描述】:
我正在尝试按如下方式处理我的字符串和步骤:
mytext='\\[[123 one (/)\n\\[[456 two (/)\n\\[[789 three (/)'
myvar=456
并且我想在被分隔符\n分割后删除匹配myvar的部分字符串(和分隔符),结果应该是
\\[[123 one (/)\n\\[[789 three (/)
但我还是没有找到解决办法。
如果分隔符是像:这样的单个字符,我可以用sed命令完成:
mytext2='\\[[123 one (/):\\[[456 two (/):\\[[789 three (/)'
myvar2=456
echo $mytext2 | sed -E "s/[^:]*${myvar}[^:]*(:|$)//g"
Result as expected: \\[[123 one (/):\\[[789 three (/)
在这种情况下,如果 delimiter 是多字符怎么办? 谢谢。
【问题讨论】:
-
请编辑您的 Q 以包含
$mytext的版本,其中包含所需的\n字符以及通过运行您的 cmd 的输出。也可以试试echo -e "$mytext" | ...。祝你好运。