Linux 如何替换文本文件中的特定行
我有一个这样的文本文件Linux 如何替换文本文件中的特定行,linux,shell,centos,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 ec
...
# 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'
用
awk
来做。你想用什么来代替它们?@Barmar我想可以用sed来做,但是我不知道如何获得#xxx start
的行号你为什么需要行号?只需使用/#xxx start/,/#xxx end/
作为您的地址范围。但是如果找不到,则在末尾添加行将很难使用sed
。使用awk
很容易,因为您可以设置一个变量并在最后检查它。