Разделяем строку на составляющие по определенным признакам. Как пример, пускай на надо получить чистый ip адрес интерфейсы из вывода команды ifconfig. Это можно сделать несколькими способами. Первый, при помощи awk:
ifconfig eth0|grep «inet addr:»| awk ‘{split($0,a,»:»); print a[2]}’
Второй, используя cut:
ifconfig eth0|grep «inet addr:» | cut -f 2 -d ‘:’
Третий, обработав строку командой tr:
ifconfig eth0|grep «inet addr:» | tr ‘:’ ‘\n’
И последний это sed:
ifconfig eth0|grep "inet addr:"|sed -e ‘s_:_\n_g’
Вывод у этих команд немного разный, первые две выводят все что находиться между символaми «:» . Если оригинал выглядит вот так :
inet addr:80.91.175.94 Bcast:80.91.175.95 Mask:255.255.255.240
то вывод будет(выбор сегмента производиться в print a[] для awk и для cut в параметре -f)
80.91.175.94 Bcast
В случаи же третей и четвертой команды, они считывают все строку, и каждый раз, когда находят символ «:» переходят на новую строку, удаляя при этом «:»
inet addr
80.91.175.94 Bcast
80.91.175.95 Mask
255.255.255.240
80.91.175.94 Bcast
80.91.175.95 Mask
255.255.255.240