【发布时间】:2016-03-19 18:08:05
【问题描述】:
我有一个包含以下内容的示例文件。
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= 语法会给我带来意想不到的结果,如下所示。不知何故,第一条记录被抛在了后面。
$ 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
【问题讨论】: