我有一个类似这样的文件(^ A是非打印字符,下面是VI中的视图),^ A分隔的列和\ n终止的行。
# input
2013-10-07 10:40:14.170976^Awww.abc.com/0
2013-10-07 10:40:14.171074^Awww.abc.com/1
2013-10-07 10:40:14.171101^Awww.abc.com/2
2013-10-07 10:40:14.171133^Awww.abc.com/3
2013-10-07 10:40:14.171156^Awww.abc.com/4
...
您可以使用下面的python脚本重新创建文件:
# test.py
from datetime import datetime
for i in range(10):
print chr(1).join(str(elem) for elem in [datetime.now(), 'www.abc.com/' + str(i)])
然后
python test.py > input
我尝试使用awk获取文件的第一列(时间戳)。
cat input | awk 'FS="\x01"{print $1}'
2013-10-07
2013-10-07 10:40:14.171074
2013-10-07 10:40:14.171101
2013-10-07 10:40:14.171133
2013-10-07 10:40:14.171156
...
不知何故,第一行在时间戳之后跳过了部分,任何人都知道我做错了什么。 谢谢!
答案 0 :(得分:13)
这是因为在开始处理输入文件之前必须在BEGIN
块中设置这些变量,如:
awk 'BEGIN { FS="\x01" } {print $1}' input