Был избит за решение для sed, поэтому вместо этого я выложу perl
dito.Для печати выбранных строк.
$ seq 100 | perl -ne 'print if $. >= 10 && $. <= 20'
10
11
12
13
14
15
16
17
18
19
20
Для печати выборочных столбцов используйте
perl -lane 'print $F[1] .. $F[3] '
-F
используется в сочетании с -a
, чтобы выбрать разделитель для разделения строк.
Для проверки используйте seq
и paste
, чтобы получить сгенерировать несколько столбцов
$ seq 50 | paste - - - - -
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
31 32 33 34 35
36 37 38 39 40
41 42 43 44 45
46 47 48 49 50
Позволяет распечатать все, кроме первого и последнего столбца
$ seq 50 | paste - - - - - | perl -lane 'print join " ", $F[1] .. $F[3]'
2 3 4
7 8 9
12 13 14
17 18 19
22 23 24
27 28 29
32 33 34
37 38 39
42 43 44
47 48 49
В приведенном выше утверждении join
есть вкладка, вы получаете ее, используя вкладку ctrl-v.