From 9ac0b9d604908f72855fe120986a102220dd369f Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 10 Feb 2021 19:02:13 +0300 Subject: [PATCH] perl -lane MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit У awk удобный способ задания какие колонки текста и как надо распечатать. cut не будет ему заменой (даже учитывая 162386cf9a9eb0fb4237c48a7e3862f3ef8a8c60), ибо он не может нормально переставить колонки местами или иметь негативную нумерацию колонок. perl конечно же всё это может, но я не знал про "-a" опцию, которая автоматом делает split $_ в @F. А "-l" автоматом позволит сделать newspace на выходе удобно. В итоге распечатка последней, а дальше со второй по четвёртую колонки можно сделать так: perl -lane 'print "@F[$#F, 1..3]"' Я и про возможности указания индексов массива то забыл уже в нём. А разделитель можно указать через "-F" (-F: например). Всё же Perl очень крут в плане удобства и возможностей. Часто стал видеть в разных примерах использование say вместо print. В книгах которые читал -- say не припомню. Отличается тем, что добавляет перевод сразу. Но он является некой (тут я уже не понимаю) опциональной фичей и поэтому просто "-e" не сработает. perl -anE 'say "@F[$#F, 1..3]"' -- 2.50.0