Who am I

我的照片
Hefei, Anhui, China
Research Fields: Satellite Geodesy

2012年2月10日星期五

Shell中的tr,sort和uniq命令

tr命令
简介:可以快速实现字符的简单转换,也可以删除字符串中的指定字串,合并字符串中的重复串。
用法:tr [option] "set1" "set2"
选项:-c    用set1中的字符串替换,要求字符集为ascii(默认选项)
     -d     删除set1中的字符,而不是转换
     -s     删除所有重复出现的字符序列,只保留第一个;即将重复出现的字符串压缩为一个字符串。
     -t     把set1中的字符依次替换成set2中的字符
举例:
1. ls | tr "\n" " " 将换行符替换成空格
2. tr f F < aa.txt 将aa.txt文件中的字符f替换成F
3. ls | tr -d '\n' 删除换行符
4. tr -d f < aa.txt 删除文件中所有的f
5. tr [a-z] [A-Z] < aa.txt 将aa.txt中的所有小写字符替换成对应的大写字母
6. echo "feed me" | tr -s "e"   显示结果为fed me,删除重复字符

7. echo "a ab ac" | tr -t [a-c] [0-2] 显示结果为 0 01 02

sort命令
简介:将文本文件内容加以排序
用法:sort [bcdfimMnr][-o输出文件][-t分隔字符][文件]
选项:-b     忽略每行前面开始处的空格字符
     -c     检查文件是否已经按照顺序排序
     -d     排序时,处理英文字母、数字及空格字符外,忽略其它的字符
     -f     排序时,将小写字母视为大写字母
     -i     排序时,除了040至176之间的ascii字符外,忽略其它的字符
     -m     将几个排序好的文件进行合并
     -M     将前面3个字母依照月份的缩写进行排序
     -n    依照数值的大小排序
     -o    将排序后的结果存入指定的文件
     -r    以相反的顺序来排序
举例:
1. sort -r < aa.txt
2. sort -nr < aa.txt
3. sort -nr -obb.txt <aa.txt
4. tr "!?":;\[\]{}(),.\t\n" " " < test.txt    #将所有标点符号换成空格符
   tr [A-Z] [a-z] | tr -s " " | tr " " "\n" | sort   #将所有大写字母换成小写字母,并删除重复      的空格字符,将空格符替换成换行符,按行排序

uniq命令
简介:检查及删除文件中重复出现的行
用法:uniq [options] file_in file_out
选项:-c    重复行只显示一次,但在每行的左边显示该行在文档中重复的次数
     -d     只显示重复行,并只显示一次
     -u     只显示不重复行
     file_in 输入的文件名
     file_out 将显示结果输出到文件
举例:
1. uniq -c test.txt
2. uniq -d test.txt
3. uniq -u test.txt
4. uniq -c test.txt test_new.txt


没有评论:

发表评论