У меня есть пример файла, который содержит следующее.Различные результаты в awk при использовании разных синтаксисов FS
logging.20160309.113.txt.log: 0 Rows successfully loaded.
logging.20160309.1180.txt.log: 0 Rows successfully loaded.
logging.20160309.1199.txt.log: 0 Rows successfully loaded.
В настоящее время я знаком с двумя способами реализации синтаксиса разделителя полей в awk. Однако в настоящее время я получаю разные результаты.
Долгое время я использую
«FS =» синтаксис, когда мой FS более чем один символ.
«-f» флаг, когда мой FS - всего лишь один символ.
Я хотел бы понять, почему синтаксис FS = дает мне неожиданный результат, как показано ниже. Как-то 1-я запись остается позади.
$ head -3 reload_list | awk -F"\.log\:" '{ print $1 }'
awk: warning: escape sequence `\.' treated as plain `.'
awk: warning: escape sequence `\:' treated as plain `:'
logging.20160309.113.txt
logging.20160309.1180.txt
logging.20160309.1199.txt
$ head -3 reload_list | awk '{ FS="\.log\:" } { print $1 }'
awk: warning: escape sequence `\.' treated as plain `.'
awk: warning: escape sequence `\:' treated as plain `:'
logging.20160309.113.txt.log:
logging.20160309.1180.txt
logging.20160309.1199.txt
Принимая это как лучший ответ для предоставления справочных справок. – Ricsonc