linux - 如何替换文本文件中的特定行

标签 linux shell centos

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

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

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

最佳答案

只需使用 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'

关于linux - 如何替换文本文件中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319142/

相关文章:

linux - 将文件夹从远程位置复制到本地计算机而不提示输入密码

shell - 如何使 virtualenvwrapper 在 fish shell 中工作?

php - 找不到cron命令-CentOS 7

java - Tesseract OCR 无法在 Linux 上的 Java 中运行

linux - RPM 升级不会卸载以前版本安装的包

linux - 使用 BASH 注释间隔

linux - 在子 shell 中运行的脚本不运行与调用脚本相同的 shell

ubuntu - 不同Linux发行版的ansible相同剧本

linux - rsync 排除/包含奇怪的行为

php - 如何将 php 与 bash 脚本连接或将变量从 php 传递到 bash 脚本