У меня есть несколько файлов данных, и мне нужно вытащить некоторую информацию.Я хотел бы использовать один сценарий awk для вывода данных, поэтому я могу высосать некоторые данные в массивы bash.
для этого, давайте предположим, что мне нужно следующее (1-индексированное): - Мне нужен awkчтобы напечатать первый столбец в строках 2, 3 и 4 - мне нужен awk для печати столбцов 1, 2 и 3 в строках 8 и более.но я хочу, чтобы все столбцы были напечатаны перед двумя столбцами, а два столбца перед тройками столбцов.
, используя следующий пример данных:
abc
def
ghi
jkl
mno
1a1
2b2
11 22 33 44
55 66 77 88
99 00 12 13
14 15 16 17
Я хотел бы, чтобы awk печаталстрока:
def ghi jkl 11 55 99 14 22 66 00 15 33 77 12 16
я создал следующее, которое, как я думал, будет работать, но я получаю сообщение об ошибке, в котором говорится, что «блоки END должны иметь часть действия».
awk '
BEGIN {i=0;}
{
if ((NR >= 2) && (NR <= 4))
print $1;
if (NR >= 8)
{
col1_arr[i] = $1;
col2_arr[i] = $2;
col3_arr[i] = $3;
i++;
}
}
END
{
for (j = 0; j < i; j++)
print col1_arr[j];
for (j = 0; j < i; j++)
print col2_arr[j];
for (j = 0; j < i; j++)
print col3_arr[j];
}' /path/to/my/file
спасибовпереди времени.