LINUX.ORG.RU

[awk] Вывод N колонок строки

 


0

0

Привет.

awk достаточно просто позволяет поделить строку на колонки по заданному разделителю и вывести только нужные: cat logfile | awk -F. {'print $2 " " $4 " " $5'}

Есть ли простой способ вывести все колонки с N-ной и до конца строки?

Спасибо.

я, возможно, открою секрет, но если делить колонки точкой, то проще юзать cut:

cut -d . -f 1,2,3

чтобы вывести все поля, начиная с 3 и заканчивая концом строки, пишем

cut -d . -f 3-

leave ★★★★★
()
Ответ на: комментарий от leave

Да и с пробелом работает (: Действительно, секрет. Спасибо!

Frakhtan-teh ★★
() автор топика
Ответ на: комментарий от leave

Ммм... и все-таки, как насчет регулярного действия? Допустим я хочу получить сумму всех полей. Если я нумерую их руками, то awk '{print $2+$2+$4+$5}', но если таких полей 10k+ ?

Frakhtan-teh ★★
() автор топика
Ответ на: комментарий от Frakhtan-teh

awk это язык программирования, с циклами, условными операторами... прочитайте по ниму доку.

echo 10 20 30 40 50 | awk '{ for (i=3 ; i<=NF; i++) printf $i" "; print "" }'

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.