我有文件,有行,包含带网络掩码的ip A.B.C.D / 24 w.x.y.z / 32 等等 如何删除删除特定行? 我正在使用
sed -ie "s#a.b.c.d/24##g" %filname%
但删除后是文件中的空字符串。
它应该在脚本内运行,ip作为参数,也可以在sh下的freebsd中运行。
答案 0 :(得分:6)
sed -i '/<pattern-to-match-with-proper-escape>/d' data.txt
-i
选项将更改原始文件。
awk '!/<pattern-to-match-with-proper-escape>/' data.txt
答案 1 :(得分:4)
使用sed:
sed -i '\|a.b.c.d/24|d' file
命令行arg: 对于输入是命令行参数,比如说第一个参数($ 1):
sed -i "\|$1|d" file
将$ 1替换为适当的参数编号。
答案 2 :(得分:2)
你应该使用d(删除)而不是g。也不要使用s(替换)。
sed -ie '/a.b.c.d\/24/d' %filename%
在脚本中你应该以这种方式使用它
IP=$1
IPA=${IP////\\/}
sed -i /"${IPA}"/d %filename%
应该以这种方式调用脚本参数:
./script.sh a.b.c.d/24
答案 3 :(得分:1)
perl -i -lne 'print unless(/a.b.c.d\/24/)' your_file
或在awk中,如果您不想进行就地编辑:
awk '$0!~/a.b.c.d\/24/' your_file