AWK的一个用法

sh/bash/dash/ksh/zsh等Shell脚本
回复
悬崖勒马2011
帖子: 91
注册时间: 2013-01-23 14:27
系统: ubuntu 12.04

AWK的一个用法

#1

帖子 悬崖勒马2011 » 2014-06-16 10:35

我有一个文本文件:
1 2 10
3 5 30
5 1 50
4 3 50
我想把第一行写入文件1.cat中,第二行写入文件3.cat中 ... ... 即每一行写入与该行首列名称相同的文件中,请问如何写脚本?
悬崖勒马2011
帖子: 91
注册时间: 2013-01-23 14:27
系统: ubuntu 12.04

Re: AWK的一个用法

#2

帖子 悬崖勒马2011 » 2014-06-16 10:38

我写过awk与sed的组合,但sed要判断每一行,对于几千行的数据就跑得慢了。
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: AWK的一个用法

#3

帖子 astolia » 2014-06-16 11:15

代码: 全选

awk '{print $0>$1".cat"}'
买本awk的书正规学一下吧
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
联系:

Re: AWK的一个用法

#4

帖子 sk1418 » 2014-06-17 16:49

如果你第一列有很多不同的数, 比如从1-6000, 你要close. 否则会报错, too open files

代码: 全选

awk '{f=$1".cat";print $0>f;close(f)}' input

另外, 一般情况用不着awk, sed 组合
---
regards,

Kent
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: AWK的一个用法

#5

帖子 eexpress » 2014-06-18 9:08

其实,现实中没碰到过需要awk的数据了。
● 鸣学
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: AWK的一个用法

#6

帖子 poloshiao » 2014-06-18 9:37

1. 從終端機
man awk
會發現 出現
mawk - pattern scanning and text processing language
2. sudo ls -al /usr/bin/awk
/usr/bin/awk -> /etc/alternatives/awk
3. sudo ls -al /etc/alternatives/awk
/etc/alternatives/awk -> /usr/bin/mawk
4. mawk
http://www.unix.com/man-page/linux/1/MAWK/
回复