在今天的工作中,我想从文件file1中读取某一列。如果在以前,碰到这样的问题,我一定会通过如下语句实现:
new = []
with open(file1, 'r') as f:
for line in f.readlines():
new.append(line.strip().split('\t')[col])
那么有没有更为快速的方法呢?答案就是awk命令。对于上面这几行代码所实现的功能,awk只需一行代码就可以搞定:
awk '{print $col > "output.txt"}' file1.txt
如果我们想合并两个具有相同行数的文件a和b,也可以通过awk命令实现:
awk 'NR==FNR{a[NR]=$0;nr=NR;}NR>FNR{print a[NR-nr]"\t"$0 > "output.txt"}' a.txt b.txt
网友评论