【问题标题】:Bash replace or create line in file [duplicate]Bash在文件中替换或创建行[重复]
【发布时间】:2018-11-25 02:53:43
【问题描述】:

最好的方法是什么。

如果一行以字符串开头,则将整行替换为新字符串 如果文件中没有任何行以该字符串开头,则将其附加到文件中

例如:

文件.txt:

FOO=blah
BAR=bleh
GIN=blop

如果 FOO 行存在,我如何替换它,如果没有以 FOO 开头的行,我该如何添加到文件中?

【问题讨论】:

  • 你有什么尝试吗?
  • @NicolásAlarcónR。那是“按行号”,所以不是一个很好的欺骗。
  • 试试这个:grep 'FOO' file || echo 'FOO=blah' >> file

标签: string bash


【解决方案1】:

你可以试试这个命令,

if grep -q -F 'FOO' file.txt ; then sed -i 's/FOO/newline/g' file.txt; else echo newline >> file.txt; fi

或(取决于或您的 sed 版本)

if grep -q -F 'FOO' file.txt ; then sed -i '' 's/FOO/newline/g' file.txt; else echo newline >> file.txt; fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    相关资源
    最近更新 更多