gpt4 book ai didi

Linux:使用 sed 替换文本文件中制表符分隔行的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:07:04 28 4
gpt4 key购买 nike

Linux:如何使用 sed 替换文本文件中制表符分隔行的值。

myfile 中的示例数据:

98104930    CLOSED  /data/nightlybackup/adx.ngx kyangx@nginx.com

预期:

98104930    FIXED   /data/nightlybackup/adx.ngx kyangx@nginx.com

id=98104930
qa=kyangx@nginx.com
testcase=/data/nightlybackup/adx.ngx
oldstatus=CLOSED
newstatus=FIXED

我试过:

sed -i "s/${id}\\t${oldstatus}\\t${testcase}\\t${qa}/${id}\\t${newstatus}\\t${testcase}\\t${qa}/g" ${myfile}

但这行不通。有人可以提供相同的解决方案吗?

最佳答案

您不需要对制表符进行两次转义,只需使用 \t。而且你必须在 sed 中使用不同的分隔符,因为你的一个变量使用 / (testcase) 所以 sed 被它愚弄了,例如你可以使用#

sed -i "s#${id}\t${oldstatus}\t${testcase}\t${qa}#${id}\t${newstatus}\t${testcase}\t${qa}#g" ${myfile}

在sed中你几乎可以使用任何字符作为分隔符,s///, s###, s,,,等等

关于Linux:使用 sed 替换文本文件中制表符分隔行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844291/

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