我有一个文本文件“text.txt”,它包含一堆带有文本(或空行)的行。
我试图形成一个单一的 sed/awk 命令行命令,它可以让我注释掉任何喜欢的东西(通过在我指定的任何行号的开头添加一个“#”)。
例如,文本文件可能看起来像:
A
B
C
D
并且我想发出一个指定行号 2 的命令,所以它看起来像:
A
#B
C
D
如果可以指定行的范围,那么可以修改多行,例如“2- 4" 或 2,3,4" 也有帮助。
我在 sed 中发现了关于 -n 和 -e 选项的(对我来说)相互矛盾的信息,只是不能像我希望的那样让它工作。我正在使用 Kubuntu 18.04。
有什么建议?谢谢。
我一直在将我在其他问题中发现的概念串在一起,例如必须保留该行,但在它的开头添加“#”,因此我将“s/(.*)/#$1/”作为回补。
我认为它可能会这样工作:
但是,我明白
这似乎有一些很好的部分,但是,它并没有像我希望的那样工作,它只处理一行,而不是所有行sed '2,4!s/(.)/#$1/' text.txt s/.: Event not found.cat text.txt | sed -n '2{s/(.)/#$1/;p}'