我正在寻找一个sed命令来编辑Arch Linux
镜像文件。该命令应搜索#评论国名像#Germany并取消以下 #注释行。sed命令来搜索一行并取消注释以下行
任何帮助表示赞赏。
例子:
前:
#Germany
#hostA
#hostB
...
#hostH
#hostI
...
#hostZ
后:
#Germany
hostA
hostB
...
hostH
#hostI
...
#hostZ
我正在寻找一个sed命令来编辑Arch Linux
镜像文件。该命令应搜索#评论国名像#Germany并取消以下 #注释行。sed命令来搜索一行并取消注释以下行
任何帮助表示赞赏。
例子:
前:
#Germany
#hostA
#hostB
...
#hostH
#hostI
...
#hostZ
后:
#Germany
hostA
hostB
...
hostH
#hostI
...
#hostZ
使用GNU sed
,你可以这样做
gsed '/#Germany/,+4{/#Germany/ n; s/^#//}'
例
$ cat test
Some
random
stuff
#Germany
#1
#2
#3
#4
$ gsed '/#Germany/,+4{/#Germany/ n; s/^#//}' test
Some
random
stuff
#Germany
1
2
3
4
它所做
'/#Germany/,+4
这是一个地址图案。它匹配第一个#Germany
和它后面的4行。如果匹配,则执行该模式的命令
/#Germany/ n;
如果是国名,我们可能不会取代它。 n
代表下一个,它读取缓冲区的下一行。
s/^#//
替换#
什么也没有。
在awk
$ awk 'c&&c--{sub(/^#/,"")} /#Germany/{c=8} 1' file
我选择了* nullp01n73R *中的命令,因为问题询问** sed **。不管怎样,谢谢你。 –
如果问题是“我怎样用螺丝刀开一个钉子?”,人们并不会打折“使用锤子”的答案,因为问题不在于锤子。 –
类似请提供了文件中的几个示例性输入线与所述期望的输出一起。 –
完成。根据要求添加示例。 –