unix textutils:grep,awk,sed…
(本来列表中还应该有 head,tail,sort,tr,cut,join,wc…等)
首先,E文好的同志们看这里:
http://www-128.ibm.com/developerworks/linux/library/l-textutils.html
从最简单的开始.
注意备份
grep -v root < /etc/passwd
(注意root没了.)
grep root < /etc/passwd
(只剩root)
grep -A 10 -B 10 fcicq /etc/passwd
(打印上下文,上10行下10行)
head /etc/passwd
tail /etc/passwd
(一个头,一个尾.)
tr -s ' ' somefile
(清理空格)
awk -F”:” ‘{ print $1,$3 }’ /etc/passwd
cut -d”:” -f1,3 /etc/passwd
(冒号分割,也可以用’ ‘ – tab之类.)
awk -F”:” ‘{ print $1,($3+1) }’ /etc/passwd
(可以进行数学运算,注意都+1了)
awk ‘{ print $0″
” }’ < unixfile > dosfile
(unix -> dos,就是在末尾+
)
sed -e s/pattern/newstr/g filename > newfile
(替换pattern->newstr,freebsd的要换成-E)
sed -n 1,5p filename
(显示1-5行 – 这种任务应该交给head)
uniq -c xxx
(清理重复,显示重复数目)
wc -l xxxx
(这个文件有几行?)
sort -r
(倒着来)
sort -n
(按数字排)
awk ‘BEGIN{sum=0}{sum=sum+$0}END{print sum}’ test.txt
(数字求和)
你觉得差不多了?
ok.
给你个日志,让你求一下该站的流量情况,呵呵.
一个无关的例子:
awk -F’|’ ‘{a[$5]+=$4}END{for(i in a)printf(“%s %d
“,i,a[i])}’ datafile | sort
友情提示: 请注意文章的时效性与准确性, 作者不对文章的有效性负责.
Tags: soft
Permalink Bookmark on del.icio.us
Last Modified: July 18, 2007 at 10:23 am
fcicq said,
June 20, 2007 @ 20:10
cat 把文本文件的内容送到标准输出。
cksum 输出指定的每个文件的CRC(循环冗余校验)和字节数。
comm 一行一行对两个已经排序的文件进行比较。
csplit 把一个文件分片。
cut 从指定的文件中提取特定的列送到标准输出。
expand 把文件中的TAB符转换为空格符送到标准输出。
fmt 预格式化指定文件的段落,送到标准输出。
fold 断开指定文件(默认是标准输入)较长的行,在屏幕上显示。
head 显示每个指定文件的前几行(默认是10)。
join 合并两个文件的行。
md5sum 显示或者校验MD5校验码。
nl 把每个指定文件的内容写到标准输出,在每行加上行号。
od 以数字方式显示指定文件的内容,默认是八进制。
paste 将字段连接在一起,在字段之间自动插入分割符,默认的分割符是Tab,然后写到标准输出。
pr 将文件分成适当大小的页送到打印机。
ptx 为指定的文件提供一个排序索引。
sort 对文件排序并显示。
split 把文件分成固定大小的片。
sum 显示指定文件的校验和及块数。
tac 逆向显示指定的文件,最后一行在前。
tail 在屏幕上显示每个指定文件的最后几行(默认是10)。
tr 从标准输入读入正文,对字符进行转换、压缩或者删除,然后写到标准输出。
tsort 对给定的文件进行拓扑排序。
unexpand 把指定的每个文件中的空格符号转换为Tab符,然后写到标准输出。
uniq 抛弃指定文件或者标准输入中内容重复的行,送到标准输出。
wc 统计文件中包含的字节数、单词数和行数。
fcicq said,
June 20, 2007 @ 21:16
需要join的文件先排序 sort -k 1b,1 < xxx.plt > new.plt
sort -k 1,1 -u 根据某一个列选第一名
fcicq said,
July 18, 2007 @ 11:30
tee – read from standard input and write to standard output and files
fcicq said,
July 18, 2007 @ 12:36
nl -ba file | sort -nr | cut -f 2 > new.file
(保持原顺序)