linux文本处理 sort,grep,sed,awk笔记

Attend 2011-05-23

转载http://hi.baidu.com/%C3%CE%C0%EF%CF%E3%B0%CD%C0%AD/blog/item/caf21ba89c54ada1ca130c4a.html

一、sort

Usage: sort [OPTION]... [FILE]...

-o输出文件

-d按字典顺序排序

-n按数据大小输出

-r按逆序输出排序结果

-k指定分类是域上的数字分类

-t 域分隔符,用非空格或tab分隔域

sort -k3 -n -r -t: /etc/passwdsort -d /etc/passwd

二、WC

Usage: wc [OPTION]... [FILE]...

-c字符数量~

-l行数~

-w统计单词数量~

wc/etc/passwd

36   65 1739 /etc/passwd #36行,65个单词(空格区分),1739个字符

三、diff

diff

Usage:diff[OPTION]...FILES

Comparefileslinebyline.

-q显示有无差异,不显示详细的信息~

-c显示全部内文,并标出不同之处~

-b不检查空格字符的不同~

-B不检查空白行

-r比较子目录中的文件~

diff/etc/passwd./passwd.bak

2d1

< bin:x:1:1:bin:/bin:/sbin/nologin

四、grep

Usage:grep[OPTION]...PATTERN[FILE]...

SearchforPATTERNineachFILEorstandardinput.

-c只打印匹配的行编号数

-i匹配文本时忽略大小写

-n在每行前显示其行编号

-v逆向输出,打印不匹配的行

-ffile要匹配的字符在文件列表中

cat/etc/passwd|grep-nroot

1:root:x:0:0:root:/root:/bin/bash

12:operator:x:11:0:operator:/root:/sbin/nologin

#grep'[Tt]his'file.txt

#grep'^[^#]'file.txt

匹配任意字符

grep'r..t'/etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

五、sed

sed

Usage:sed[OPTION]...{script-only-if-no-other-script}[input-file]...

S替代操作

i插入命令

a附加命令

d删除全部匹配行

D 删除首次匹配的行

#sed -n '1,4p' /etc/passwd 打印1~4行,-n --quiet以免先打印出passwd的全部内容

#sed'/80/D'file.txt

#sed's/var/usr/g'file.txt替换file.txt中全部var为usr

#sed'50,$s/help/man/g'file.txt从50~最后行替换help为man

sed '/done/d' xj_user_p.log 删除done

六、awk

Usage: awk [POSIX or GNU style options] -f progfile [--] file ...

Usage:awk[POSIXorGNUstyleoptions][--]'program'file...

gawk'{sum+=$1};END{printsum}'file

gawk-F:'{print$1}'/etc/passwd

NF 当前记录中的字段数。NR 当前记录数。

awk-F:'{printNR,$1,$NF}'./passwd.bak

awk-F:'NR%10==5{printNR,$0}'./passwd.bak打印出5,15,25...行

5sync:x:5:0:sync:/sbin:/bin/sync

15nobody:x:99:99:Nobody:/:/sbin/nologin

25 apache:x:48:48:Apache:/var/www:/sbin/nologin

综合示例:

...

数据处理:

找出上海股票涨幅最大的股票?

sort-n-r-k4t.txt|sed-n'1p'

涨幅>3的股票?

awk'{if($1>3)print$0}'t.txt

涨幅在在4~15之间的股票

awk'{if($4>0&&$4<15){print$0}}'t.txt

相关推荐

whats / 0评论 2011-04-10