У меня есть 10 полей, и я хочу начать с поля 5 в поле 10 и игнорировать первые 5 полей. Как я могу использовать NF в awk для этого?
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10
Я хочу показать только:
f6 f7 f8 f9 f10
c6 c7 c8 c9 c10
Просто обработайте интересующие поля. Это будет последнее поле -4, последнее поле -3, до фактического последнего поля.
Чтение из файла с этим контентом (file.txt):
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10
[d3 ] Запустите awk в файле, как описано ниже. Строкой с знаком $ является команда. Последние две строки - это выход. $ awk '{print $(NF-4)" "$(NF-3)" "$(NF-2)" "$(NF-1)" "$NF}' file.txt
f6 f7 f8 f9 f10
c6 c7 c8 c9 c10
file.txt : Как заметил Кир в комментарии, я удалил скрипт bash и оставил только оператор печати сделать это проще и быстрее.