我正在尝试根据我设置的IP范围从文件中删除多个IP条目。
文件的前文:
15.12.168.192 13.13.168.192 23.12.168.192 23.15.168.192 等...
我想在脚本下面只设置RANGE区域。
#!/bin/bash
# RANGE
START=192.168.12
END=192.168.13
##collecting the last two digit from START and END
first=`echo $START | sed 's/^.*\(.\{2\}\)$/\1/'`
last=`echo $END | sed 's/^.*\(.\{2\}\)$/\1/'`
## echo both
echo $first
echo $last
for ip in 192.168.1.{$first..$last}; do
echo "$ip"
## conversion of the IPs.
echo $ip | sed -e '/\n/!G;s/\([^.]*\)\.\(.*\n\)/&\2.\1/;//D;s/\n//'
done
即使对文件仍有最后一步(grep -v) - 我已经陷入了这个阶段;我知道这是一种语法......
这是一行:
for ip in 192.168.1.{$first..$last}; do
echo "$ip"
这是使用$first
和$last
来生成给我带来麻烦的每个IP。
答案 0 :(得分:1)
{12..45}
仅适用于文字,您不能使用变量。但是,如果只有一对括号,则无需扩展:
for fourth in $( seq $first $last) ; do
echo 192.168.1.$fourth
done