gpt4 book ai didi

linux - 如何仅当包含它的行不包含使用 Bash 的特定字符串时才替换文件中的字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:29 24 4
gpt4 key购买 nike

我想使用 Bash 在以下 file.csv 中用 replace 替换 target 的所有实例,但前提是包含它的行不包含字符串跳线:

文件.csv:

abc,abc,keepline,target,abc,abc
abc,abc,skipline,target,abc,abc

期望的输出:

abc,abc,keepline,replace,abc,abc
abc,abc,skipline,target,abc,abc

我正在尝试使用 sed:

sed 's/target/replace' file.csv > newfile.csv

我如何包含逻辑来检查字符串 skipline 的每一行?

最佳答案

您可以过滤需要搜索和替换的行

$ cat ip.txt 
abc,abc,keepline,target,abc,abc
abc,abc,skipline,target,abc,abc

$ sed '/skipline/! s/target/replace/' ip.txt
abc,abc,keepline,replace,abc,abc
abc,abc,skipline,target,abc,abc

关于linux - 如何仅当包含它的行不包含使用 Bash 的特定字符串时才替换文件中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39958945/

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