Como usar a saída awk para construir o comando

0

O objetivo é excluir o nome da conexão existente e criar as novas conexões "ABC" "DEF" "GHI" e mapear para o dispositivo existente (excluindo lo).

#!/bin/bash

conname=$(nmcli con  | awk ' $1 !~ "NAME|lo"{print $1}')
ifname=$(nmcli dev  | awk ' $1 !~ "DEVICE|lo"{print $1}')

echo $conname
echo $ifname

Os retornos acima seguem valores:

test3 test4 test5
enp0s3 enp0s8 enp0s9

Como posso produzir as seguintes linhas de comando usando a saída anterior por awk

nmcli con del test3
nmcli con del test4
nmcli con del test5

O seguinte é para criar novos nomes de conexão "ABC", "DEF", "GHI" que são mapeados para interfaces "enp0s3" "enp0s8" "enp0s9". Essas interfaces foram identificadas pelo awk. Novos nomes de conexão são nomes fixos.

nmcli con add type ethernet con-name ABC ifname enp0s3
nmcli con add type ethernet con-name DEF ifname enp0s8
nmcli con add type ethernet con-name GHI ifname enp0s9

Espero que isso seja mais claro.

    
por samky2005 21.11.2018 / 05:45

2 respostas

0

Basta enviar os comandos por um loop while.

$ nmcli con | awk ' $1 !~ "NAME|lo"{print $1}' | while IFS= read -r line; do echo nmcli con del "$line"; done
nmcli con del test3
nmcli con del test4
nmcli con del test5

Para o segundo comando, criamos e determinamos primeiro as seqüências de caracteres ABC , DEF , GHI , depois lemos a partir disso incrementalmente.

$ declare -a arr
$ arr=(ABC DEF GHI)
$ i=0
$ nmcli dev | awk ' $1 !~ "DEVICE|lo"{print $1}' | while IFS= read -r line; do echo nmcli con add type ethernet con-name ${arr[$i]} ifname "$line"; ((i+=1)); done
nmcli con add type ethernet con-name ABC ifname enp0s3
nmcli con add type ethernet con-name DEF ifname enp0s8
nmcli con add type ethernet con-name GHI ifname enp0s9
    
por 21.11.2018 / 07:46
2

E - como awk é usado de qualquer forma - por que não

$ nmcli con | awk '$1 !~ "NAME|lo" {print "nmcli con del *" $1 "*"}' 
nmcli con del *test3*
nmcli con del *test4*
nmcli con del *test5*
$ nmcli dev | awk '$1 !~ "DEVICE|lo" {print "nmcli con add type ethernet con-name ABC ifname", $1}'

Se você nos informar como um "nome diferente, ou seja," ABC "" DEF "" GHI "" pode ser atribuído, isso pode ser incorporado também.

    
por 21.11.2018 / 09:33

Tags