【问题标题】:How to replace specific lines in a text file如何替换文本文件中的特定行
【发布时间】:2017-11-03 06:53:52
【问题描述】:

我有一个这样的文本文件。

...
# xxx start
...
# xxx end
...

我想替换# xxx start# xxx end 之间的行。 如果# xxx start 未出现,请在文件末尾附加# xxx start# xxx end
有什么办法可以用shell来做吗?

【问题讨论】:

  • awk一起做。
  • 你想用什么替换它们?
  • @Barmar 我认为可以用sed来完成,但是我不知道如何获取# xxx start的行号
  • 为什么需要行号?只需使用/# xxx start/,/# xxx end/ 作为您的地址范围。
  • 但是如果没有找到这些行,则在末尾添加行将很难使用sedawk 很容易,因为您可以设置一个变量并在最后检查它。

标签: linux shell centos


【解决方案1】:

只需使用 sed 删除 # xxx start# xxx end 之间的行。然后将其附加到文件末尾。谢谢@Barmar。

#!/bin/bash
sed -i '/# xxx start/,/# xxx end/d' file
echo '# xxx start' >> file
curl url >> file
echo '# xxx end'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多