我有一些數據文件,我需要拉出一些信息。我想用單個awk腳本來獲取數據,所以我可以將一些數據吸收到bash數組中。awk腳本打印信息在特定的行
對於這一點,讓我們假設我需要以下的(1-索引): - 我需要AWK到上線2,3打印一列,和4 - 我需要AWK打印,2列1和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 BOCK必須有一個動作部分」。
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
提前感謝。
稍微繁瑣。但是,如果你想保持它的話,這很好。 END的代碼必須在END的同一行開始。 –