gpt4 book ai didi

linux - 如何阻止换行符转义旧的 gnu sed 命令

转载 作者:太空狗 更新时间:2023-10-29 11:43:29 24 4
gpt4 key购买 nike

我正在尝试用多行替换文件中的一行。当我只有一个换行符 (\'$'\n ) 时。它工作正常,但是当我使用其中两个时,它逃脱了我的 sed,文件将不再运行。

sed 's/TextImLookingFor/My\'$'\nReplacement\'$'\nText/g' /path/to/File.txt

文件.txt:

This is a file
TextImLookingFor
look at all this text

期望输出

This is a file
My
Replacement
Text
look at all this text

实际输出

unexpected EOF while looking for matching ''''
syntax error: unexpected end of file

最佳答案

使用较旧的 BSD sed,您可以:

sed $'s/TextImLookingFor/My\\\nReplacement\\\nText/' file
This is a file
My
Replacement
Text
look at all this text

这也适用于较新的 gnu-sed。然而,较新的 gnu-sed 可能只需要:

sed 's/TextImLookingFor/My\nReplacement\nText/' file

关于linux - 如何阻止换行符转义旧的 gnu sed 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31012637/

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