- sed
s 替换
sed 's/Unix/unix/' instro //不会对源文件修改
g 全局
sed 's/Unix/unix/g' instro //不会对源文件修改
-n 只从文件中析取几行 一般与p一起使用。显式指明
sed -n '1,2p' instro //只显示前两行的内容
不提供行号则显式查找字符串的所在的行
sed -n '/unix/p' instro //显式unix躲在那行的内容
d 删除
sed '2,13d' instro
sed '/unix/d' instro
sed -n 'l' text
显式文件所有行,把所有不可打印的字符显示\nn(nn出为八进制),制表符为\t
- tr 用来转换标准输入的字符
格式:
tr from-char to-char
说明:其中from-char与to-char可以是一个或者多个字符,所输入的任何字符,如果在from-char中都会转化为to-char
注:tr 必须从定向到文件中
例:tr e r < instro
-s 用来压缩to-char中连续重复的字符
tr -s ':' '\11'
-d 删除输入的字符
格式:tr -d from-char
例: tr -d ' ' <instro
与
sed 's/ //g' instro
同样的效果
但是 tr 可能会更好一些,它比sed程序小,执行起来速度更快
tr 只针对字符一个 ,不是字符串
- grep
-i 匹配的过程中不区分大小写
grep -i 'the' instro //不区分大小写匹配
grep '[A-Z]' list //list中包含一个大写字母的行
grep '[0-9]' data // data中包含数字的行
grep '[A-Z]...[0-9]' list //包含大写字母开头,数字结尾的5个字符的行
grep '\.pic$' filelist //以.pic 结尾的行
-v 查找不包含匹配字符串的那行
grep -v 'unix' instro
-l 找出包含指定字符串的文件列表
grep -l 'unix' * //包含unix字符串文件的列表
grep -l 'unix' * | wc -l //包含该unix字符串文件的数目
-n 找到匹配字符串那行前面加上相对行号
grep -n 'unix' instro
- sort
默认情况下,取输入文件的首列,升序排序
-u 去除重复行
-r 取反排序(反向排序)
-o 把结果写入文件 sort name -o sorted_name
-k 可选取部分内容排序
-k Fstart.Cstart , Fend.Cend
Fstart 为字段,Cstart为字符 开始
Fend为字段,Cend为字符 结束
一般与-t一起使用
-t 设置分隔符
-n 按照算术方法排序
- uniq 查找重复行
uniq infile outfile
注:uniq对重复行的定义是完全匹配的连续行,所以一般处理之前会用sort排序,再用uniq处理
root@803e41ac5ea4:/# cat test2 //原始文件内容
aaa
bbb
cccc
bbb
aaa
ccccc
cccc
root@803e41ac5ea4:/# uniq test2 //未做排序使用uniq的
aaa
bbb
cccc
bbb
aaa
ccccc
cccc
root@803e41ac5ea4:/# sort test2 | uniq //排序后使用uniq的
aaa
bbb
cccc
ccccc
-d 只输出重复行
root@803e41ac5ea4:/# sort test2 | uniq -d
aaa
bbb
cccc
-c 显示该行在文中出现的次数
root@803e41ac5ea4:/# sort test2 | uniq -c
2 aaa
2 bbb
2 cccc
1 ccccc
网友评论