Мне просто интересно, как мы можем использовать awk для точных совпадений.
например
$ cal 09 09 2009
September 2009
Su Mo Tu We Th Fr Sa
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
$ cal 09 09 2009 | awk '{day="9"; col=index($0,day); print col }'
17
0
0
11
20
0
8
0
Как вы можете видеть вышеупомянутая команда выводит порядковый номер всех строк, которые содержат строку / число "9", есть ли способ сделать выходной индексный номер awk только в 4-й строке вышеуказанного вывода cal. может быть, еще более элегантное решение?
Я использую awk, чтобы получить название дня с помощью команды cal. вот вся строка кода:
$ dayOfWeek=$(cal $day $month $year | awk '{day='$day'; split("Sunday Monday Tuesday Wednesday Thursday Friday Saturday", array); column=index($o,day); dow=int((column+2)/3); print array[dow]}')
Проблема с приведенным выше кодом заключается в том, что если найдено несколько совпадений, я получаю несколько результатов, тогда как я хочу, чтобы он выводил только один результат.
Спасибо!