文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>GNU 文本处理程序 备忘

GNU 文本处理程序 备忘

时间:2006-02-18  来源:lvjinhua

UNIX的哲学即是:用小程序完成大任务。
1 UNIX文件
   在UNXI中文件是一种字节流,一切都是文件,它可以是一个本地存储设备中的文件,可以是一个TCP/IP套接口,也可以是一个/dev下的设备。

2 重定向与管道
   重定向即将一个文件作为STDIN输入或将STDOUT/STDERR输出到一个文件。< 将文件重定向到STDIN,>将STDOUT重定向到文件,>>将STDOUT追加到文件,2>将STDERR重定向到文件, &>将STDERR与STDOUT同时重定向到文件。
   管道在UNIX中使用 | 表示,它的作用是将一个程序的STDOUT发送到另一个程序的STDIN。
 prog1 abc.txt | prog2 - > textout.txt 2> texterr.txt
在上边的例子中,程序 Prog1 处理Abc.txt文件中的内容,将其输出通过管道发送到Prog2,在Prog2中使用 - 表示其输入来自STDIN而不是文件;最后Prog2将其STDOUT重定向到Textout.txt,STDERR重定向到 Texterr.txt。

3 cat 和 tac
  用来将文件中的内容显示到STDOUT,tac与cat相反,按反方向输出,即最先输出最后一行。
  -T 选项将文件中的Tab键显示为^I的形式。
  -E 在每行结束处显示$符号。

4 od 和 hexdump
  od 将文件中的内容以八进制的形式输出。
  hexdump 将文件内容以十六进制的形式输出。
  加上 -c 形状将以字符的形式打印,不可见字符与C中类似。
  -j 和 -N 可以设置跳过最初的字节数与只读取的字节数。
  hexdump -C 选项在显示字符16进制时,在后边附加显示其ASCII字符。

5 << 重定向(HERE文档)
  如:cat> a.txt <<EOF ,作用是将STDIN输入的内容保存到a.txt中,当输入EOF是结束。

6 cut
  一般用于处理有格式的记录表。
  默认使用制表符(Tab)分隔每个字段,也可通过 -d 来重新指定。
  cut -f 1,3,4 test 的作用是将test中每行使用Tab分隔的第1,3,4列显示出来。
7 expand 和 unexpand
  用于将Tab键转换为空格与将空格转换为制表符。

8 fold
  用于将较长的行折叠,默认限制是80行。
  -s 选项控制从空白处折行
  -w 选项控制每行长度

9 fmt
  比fold功能强,它能保留初始缩进,并聚合一些段落。

10 nl
  对文件中的行编号。cat也具有相似的功能。

11 tr
  用于转换文件中的字符。
  -s 选项
  tr -s "\t " "|" < test.txt  将test.txt中的Tab与空格用|号表示,并压缩重复的空白。
  tr “a-z” “A-Z” < test.txt   将所有小写字母转换为大写字母。
  tr -d “[:lower:]" < test.txt 删除所有的小写字母。

12 sort
  sort test.txt  对test.txt中的每行进行默认规则的排序。
  sort -k 3.1 -n test.txt 此示例中 -n 表示对排序的基准字段使用数值比较,-k 后的数值表示第3个字段,只有第3字段中的第1个字符参与。
  还可以指定许多规则,如忽略大小写,排序准则等。

13 uniq
  删除完全相同的邻近行,或在一些规则下的足够近似邻近行。
  uniq -c test.txt  统计重复出现的次数。
  uniq -f 1 test.txt 不比较第一个字段。

14 tsort
  对一个有向图执行拓扑排序。主要用来查找依赖关系中的适当次序。
  第个依赖关系之间使用空格进行分隔。
 $ cat dependencies
libpng XFree86
FreeType XFree86
Fontconfig XFree86
FreeType Fontconfig
expat Fontconfig
Zlib libpng
Binutils Zlib
Coreutils Zlib
GCC Zlib
Glibc Zlib
Sed Zlibc
$ tsort dependencies
Sed
Glibc
GCC
Coreutils
Binutils
Zlib
expat
FreeType
libpng
Zlibc
Fontconfig
XFree86
15 pr
提供对文件的诸如页眉,换行,源文件列,页边缩进及可配置的页面和行宽等格式。
pr并不重新换行段落,因此其经常与fmt程序连用。

16 comm
用于比较已经排序的两个文件。
diff的功能更强大。

17 join
允许查找排序记录集合之间的共有字段。

18 paste
大至执行与cut逆向的操作。将多个文件组合到列(字段)中。默认使用Tab分隔,也可以
使用-d 来指定其它分隔字符。
cut -f 1 test.txt > t1.txt
cut -f 3 test.txt > t2.txt
paste -d ',' t1.txt t2.txt
上例将抽取test.txt中的第1和3列,然后重新组合为用’,‘号分隔的内容并输出。
paste -s t1.txt 将t1.txt中的列转换为行。默认使用Tab键分隔。

19 split
按行或字节计数,将一个文件分为多个部分。
split -l 3 test.txt tmp 将test.txt 按3行一组分隔到多个文件中,生成的文件
名使用tmp作为前缀。

20 csplit
根据文件中的上下文行来划分文件,特别是使用正则表达式。
csplit -zq test.txt /===/+1 {*} 使用每行中的===标志来划分文件。-z 表示
清除空文件,{*}表示重复到最后。

21 wc
统计文件中的单词数。
wc test.txt 将输出:lines words chars name 的形式。
wc -w < test.txt 将只输出文件中的单词数。 -l和-c 分别表示行数与字节数。

22 chksum 和 sum
一般用chksum,它将打印文件的CRC校验和及字节统计。

23 md5sum和sha1sum
分别产生128位和160位的校验和。而chksum是16位和32位的。校验和与称为hash码。
md5sum -v md5file 用于校验正确性。
相关阅读 更多 +
排行榜 更多 +
合合合军团

合合合军团

策略塔防 下载
街头滑板

街头滑板

体育竞技 下载
武者生存

武者生存

体育竞技 下载