sed+;IP后特定行上的文本
我的proftpd日志中有以下行(准确地说是第78行) 我还有一个脚本,可以在我的日志中为使用暴力攻击的人滚动,然后存储他们的IP(准备黑名单)。我正在努力的是在特定行的末尾插入(假设使用sed)——这是我目前得到的结果:sed+;IP后特定行上的文本,sed,line,Sed,Line,我的proftpd日志中有以下行(准确地说是第78行) 我还有一个脚本,可以在我的日志中为使用暴力攻击的人滚动,然后存储他们的IP(准备黑名单)。我正在努力的是在特定行的末尾插入(假设使用sed)——这是我目前得到的结果: sed "77i3.4.5.6" /opt/etc/proftpd.conf >> /opt/etc/proftpd.conf 现在有人会认为这会很好地工作,但实际上它会执行以下操作(第77行到第78行): 我怀疑这是因为我的sed版本过时了,有没有其他方法可以
sed "77i3.4.5.6" /opt/etc/proftpd.conf >> /opt/etc/proftpd.conf
现在有人会认为这会很好地工作,但实际上它会执行以下操作(第77行到第78行):
我怀疑这是因为我的sed版本过时了,有没有其他方法可以达到同样的效果?>>还会导致配置在下面的末尾被复制(同样,我确信这是我的sed版本的一个限制)。这是在我的nas上运行自制linux内核。Sed选项如下:
root@NAS:~#sed BusyBox v1.7.0
(2009-04-29 19:12:57 JST)多重呼叫
二进制的
用法:sed[-efinr]模式[文件…]
选项:
-e脚本将脚本添加到要执行的命令中
-f scriptfile将脚本文件内容添加到
要执行的命令
-我在原地编辑文件
-n抑制图案空间的自动打印
-r使用扩展正则表达式语法
如果未给出-e或-f,则第一个
非选项参数作为
使用sed脚本进行解释。所有剩余的
参数是输入文件的名称;如果
未指定任何输入文件,则
读取标准输入。源文件
除非-i选项,否则不会修改
是的
为您的帮助干杯。这与sed的版本无关;这简直是老生常谈,做错了
sed -i '77s/$/,3.4.5.6/' /opt/etc/proftpd.conf
你这该死的蠢货,谢谢。你能解释一下吗?这是否只是在第77行搜索,然后用回勾的IP地址重新标记“$”(假定这意味着什么?
$
是字符串/行的结尾。这基本上只是把地址附加到第77行的末尾。另外,s
是替代,而不是搜索。
3.4.5.6
Deny from 1.2.3.4
sed -i '77s/$/,3.4.5.6/' /opt/etc/proftpd.conf