Скажите, что я прочитал следующую информацию, хранящуюся в трех различных текстовых файлах (может быть намного больше)
Файл 1
1 2 rt 45
2 3 er 44
Файл 2
rf r 4 5
3 er 4 t
er t yu 4
Файл 3
er tyu 3er 3r
der 4r 5e
edr rty tyu 4r
edr 5t yt5 45
Когда я читаю эту информацию, я хочу, чтобы она печатала эту информацию из этих двух файлов в отдельные массивы, поскольку на данный момент они распечатываются одновременно
Теперь у меня есть этот скрипт, распечатывающий всю информацию одновременно
{
TESTd[NR-1] = $2; g++
}
END {
for (i = 0 ; i <= g-1; i ++ ) {
print " [\"" TESTd[i] "\"]"
}
print " _____"
}
Но есть ли способ прочитать несколько файлов и сделать это для каждого текстового файла?
Например, вместо получения этого вывода при выполнении awk -f test.awk 1.txt 2.txt 3.txt
["2"]
["3"]
["r"]
["er"]
["t"]
["tyu"]
["4r"]
["rty"]
["5t"]
_____
Я получаю этот вывод
["2"]
["3"]
_____
["r"]
["er"]
["t"]
_____
["tyu"]
["4r"]
["rty"]
["5t"]
_____
И чтение в каждом файле в данный момент предпочтительно не вариант, так как у меня будет около 30 текстовых файлов.
EDIT_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __
Я хочу сделать это в awk, если это возможно, потому что я собираюсь сделать что-то вроде этого
{
PRINTONCE[NR-1] = $2; g++
PRINTONEATTIME[NR-1] = $3
}
END {
#Do this for all arguments once
for (i = 0 ; i <= g-1; i ++ ) {
print " [\"" PRINTONCE[i] "\"] \n"
}
print " _____"
#Do this for loop for every .txt file that is read in as an argument
#for(j=0;j<args.length;j++){
for (i = 0 ; i <= g-1; i ++ ) {
print " [\"" PRINTONEATTIME[i] "\"] \n"
}
print " _____"
}