0

我的意思是创建一个包含网络命令的文件,该文件从包含一些 IP 的文本文件开始。例如:

带有 IP 的文件:

1.1.1.1,
2.2.2.2,
3.3.3.3,
......

从这个列表中,我需要创建一个包含 2 类命令的新文件,如下所示:

set security zones security-zone 1 address-book address H-1.1.1.1 1.1.1.1/32 - 
set security zones security-zone 1 address-book address-set GROUP address H-1.1.1.1

有人能帮助我吗?

4

2 回答 2

0

带有适当重定向的简单循环可以:

while read IP
do  echo set security zones security-zone 1 address-book address H-$IP $IP/32 -
    echo set security zones security-zone 1 address-book address-set GROUP address H-$IP
done <File >new_file
于 2020-03-30T10:00:30.987 回答
0

使用 awk。

printf版本_

cat tst.awk

输出

{ 
  printf "set security zones security-zone 1 address-book address H-%s %s/32 -\nset security zones security-zone 1 address-book address-set GROUP address H-%s\n", $0, $0, $0
}

print版本。

{
  message = "set security zones security-zone 1 address-book address"
  print message, "H-" $0, $0 "/32", "-"
  print message "-set", "GROUP", "address", "H-" $0
}

文件

cat file.txt

输出

1.1.1.1
2.2.2.2
3.3.3.3

awk -f tst.awk file.txt > out.txt

查看 out.txt

cat out.txt

输出

    set security zones security-zone 1 address-book address H-1.1.1.1 1.1.1.1/32 -
    set security zones security-zone 1 address-book address-set GROUP address H-1.1.1.1
    set security zones security-zone 1 address-book address H-2.2.2.2 2.2.2.2/32 -
    set security zones security-zone 1 address-book address-set GROUP address H-2.2.2.2
    set security zones security-zone 1 address-book address H-3.3.3.3 3.3.3.3/32 -
    set security zones security-zone 1 address-book address-set GROUP address H-3.3.3.3
于 2020-03-30T10:07:13.090 回答