Unix 在ed中使用\n和\d的含义?
我想编辑一个文件。我想搜索一个字符串并删除包含该字符串的行和它前面的19行 我在另一个网站上发现了一个类似的问题(主题现在结束了),给出的答案是使用以下ed命令(第一个命令是在模式之前删除X行) 第二个命令删除图案后的X行)Unix 在ed中使用\n和\d的含义?,unix,ed,Unix,Ed,我想编辑一个文件。我想搜索一个字符串并删除包含该字符串的行和它前面的19行 我在另一个网站上发现了一个类似的问题(主题现在结束了),给出的答案是使用以下ed命令(第一个命令是在模式之前删除X行) 第二个命令删除图案后的X行) ed-s文件您可以使用一个简单的回显测试传递给“ed”的命令: $ echo $'g/PATTERN/-X,.d\n,p' g/PATTERN/-X,.d ,p 因此实际上,\n只表示第一个命令的结束,并在shell中被替换。这对ed没有任何意义,但对您的shell
ed-s文件您可以使用一个简单的回显测试传递给“ed”的命令:
$ echo $'g/PATTERN/-X,.d\n,p'
g/PATTERN/-X,.d
,p
因此实际上,\n
只表示第一个命令的结束,并在shell中被替换。这对ed
没有任何意义,但对您的shell有意义
正如您所说,g/PATTERN/-X,.d
删除从-X行到模式匹配行的当前位置的所有行
,p
显示文件中的所有行
在第二个命令中,\d
只是一个错误。您应该将其读为\n
$ echo $'g/PATTERN/-X,.d\n,p'
g/PATTERN/-X,.d
,p