у меня есть эти два файла: file1как сравнивать числовые поля в двух файлах с AWK
2537
1279
1075
12799
1474
135441
1260
1169
1281
10759
и file2
1070,1279960511,BR,USA,UNITED STATES
1278,1279960511,US,USA,UNITED STATES
1279,1279960527,CA,CAN,CANADA
1289,1279967231,US,USA,UNITED STATES
2679,1279971327,CA,CAN,CANADA
1279,1279971839,US,USA,UNITED STATES
1279,1279972095,CA,CAN,CANADA
1279,1279977471,US,USA,UNITED STATES
127997,1279977983,CA,CAN,CANADA
127997,1279980159,US,USA,UNITED STATES
127998,1279980543,CA,CAN,CANADA
107599,1075995007,US,USA,UNITED STATES
107599,1075995023,VG,VGB,VIRGIN ISLANDS, BRITISH
107599,1075996991,US,USA,UNITED STATES
107599,1075997071,CA,CAN,CANADA
я хочу: для каждой записи file1 пройти через первый столбец файла2, и когда значение в этом столбце станет больше, чем элемент «file1», то верните третий элемент файла2 . Я пробовал много много способов, но ни один из них не работал, я либо получил пустой файл, либо распечатывал что-то разное, чем ожидаюмоя последняя попытка есть:
awk -F, '
BEGIN {FS="," ; i=1 ; while (getline < "file2") { x[i] = $1 ; y[i] = $3 ; i++ }}
{ a[$1] = $1 ; h=1 ; while (x[h] <= a[$1]) { h++ } ; { print y[h] }}' file1
, но это работает навсегда это не останавливает ни дает что-нибудь помощь мне plzzz это убивает меня в течение нескольких дней, и теперь я отказываюсь от благодаря
Желаемый результат:
#this is a comment and i ll write file 2 as if it was a matrix
because file1[1] > file2[1,1] ... and file1[1] > file2[2,1] .... and file1[1] > file2[3,1] ... and file1[1] > file2[4,1] but file1[1] < file2[5,1] ... then print file2[4,3] ... which is "US"
now go to file1[2] :
file[2] > file2[1,1] ... and file1[2] > file2[2,1] ... but file1[2] <= file2[3,1] ... then print file2[3,3]
в заключение я хочу напечатать: «третий elemenent (Col) первой линии (от file2) элемент file1 первый становится> первый элемент следующей строки (file2)
Я думаю, что вы должны иметь в виду 3-й элемент файла2? –
Можете ли вы объяснить больше, что вы хотите сделать? Самое низкое число в первом списке - 1075, а во втором - 1070. Таким образом, за исключением 1070, каждая строка во втором списке квалифицирует критерии, которые вы указали. –
no Я хочу только запись для «первого» совпадения или первого файла file1 [i]> file2 [j], а затем выйти из цикла и перейти к файлу1 [i + 1] «третий элемент файла 2 - это wht i означало спасибо:)) – rima