:: Re: [DNG] Wifi device names: was sy…
Page principale
Supprimer ce message
Répondre à ce message
Auteur: Rainer Weikusat
Date:  
À: dng
Sujet: Re: [DNG] Wifi device names: was systemd is haunting me
Steve Litt <slitt@???> writes:

[...]


> ========================================================
> #!/bin/sh
> if test "$#" == "0"; then
> lineno="1"
> else
> lineno=$1
> fi
>
> ip link | \
> cut -d ' ' -f2 | \
> grep ^w | \
> sed -e "s/:\s*$//" | \
> head -n $lineno | \
> tail -n 1
>
> ========================================================


The ip command has an -o flag for generating output which is more easily
parseable by program (-o means 'oneline'). This means the same can be
accomplished with

----
#!/bin/sh
lineno=${1:-1}
ip -o link | awk "\$2 ~ /^w/{ if (++nr == $lineno) print gensub(\":\", \"\", 1, \$2) }"
----

awk is generally the easiest to use tool if records made up of lines are
supposed to be split into whitespace-separated fields. The code can be
simplified somewhat by not using the awk gensub function to get rid of
the trailing : but the tr command in 'delete characters' mode.

----
#!/bin/sh
lineno=${1:-1}
ip -o link | awk "\$2 ~ /^w/{ if (++nr == $lineno) print \$2 }" | tr -d :
----