我有文件,带有行,包含带有网络掩码 abcd/24 wxyz/32 等的 IP 如何删除删除特定行?我在用着
sed -ie "s#a.b.c.d/24##g" %filname%
但删除后是文件中的空字符串。
它应该在脚本中运行,以 ip 作为参数,并且也可以在 sh 下的 freebsd 中运行。
sed -i '/<pattern-to-match-with-proper-escape>/d' data.txt
-i
选项将更改原始文件。
awk '!/<pattern-to-match-with-proper-escape>/' data.txt
使用 sed:
sed -i '\|a.b.c.d/24|d' file
命令行参数: 对于作为命令行参数的输入,例如第一个参数($1):
sed -i "\|$1|d" file
根据您的情况,将 $1 替换为适当的参数编号。
您应该使用 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
perl -i -lne 'print unless(/a.b.c.d\/24/)' your_file
或者如果您不想进行就地编辑,则在 awk 中:
awk '$0!~/a.b.c.d\/24/' your_file