user2642132
user2642132

Reputation: 31

Grep Multiple string search- sorting output

here is my code

iwlist wlan0 scan | grep -w "ESSID\|Quality"

it returns

                Quality=53/70  Signal level=-57 dBm
                ESSID:"NETGEAR00"
                Quality=50/70  Signal level=-60 dBm
                ESSID:"dlink_test"
                Quality=56/70  Signal level=-54 dBm
                ESSID:""
                Quality=49/70  Signal level=-61 dBm
                ESSID:"linksys"
                Quality=67/70  Signal level=-43 dBm

I would like to sort it by the ESSID first, followed by the Quality level on the same line.

ESSID:"NETGEAR00"                  Quality=53/70  Signal level=-57 dBm

Any suggestions? Linux Newb!

Upvotes: 0

Views: 372

Answers (1)

devnull
devnull

Reputation: 123518

It seems that you don't want to sort, but to simply join pairs of lines (the second before the first). Try:

iwlist wlan0 scan | grep -w "ESSID\|Quality" | tac | sed '$!N;s/\n/\t/'

For the given input, it would yield:

ESSID:"linksys" Quality=49/70  Signal level=-61 dBm
ESSID:""    Quality=56/70  Signal level=-54 dBm
ESSID:"dlink_test"  Quality=50/70  Signal level=-60 dBm
ESSID:"NETGEAR00"   Quality=53/70  Signal level=-57 dBm

Upvotes: 1

Related Questions