简单过滤器命令
简单过滤器功能:处理文件中的数据、编辑页面格式、截取文件内容、比较文件内容、字段和排序。
pr:改变文件打印格式。
-l n 设定页面长度为n行,默认为66
-w n 设定页面宽度为n字符,默认为72,仅分列显示时有效(宽度不够时截掉)
-h str 设定页眉为str
-n 对行进行编号
-k 分k列输出
-t 不显示页眉、页脚和边距
head:显示文件的开头。
tail:显示文件的结尾。
head -n k 指定显示文件前k行的内容
tail -n k 指定显示文件后k行的内容
-f 监控文件内容的增长
wh1516@PinkRAY:~/桌面$ ls -F | pr -n -l 30 -w 40 -3 | head -n 10
2021-01-13 19:01 第 1 页
1 cach 6 f1 11 lab4
2 ch3/ 7 f2 12 linu
3 CH4/ 8 f3 13 linu
4 ch6e 9 lab2 14 linu
5 data 10 lab3 15 OS/
cut:垂直划分文件。
-c 按列剪切,每列宽度为一个字符
-f 按字段剪切,字段分隔符由-d选项指定,默认为制表符
-d 指定字段分隔符
cut -c1-5 passwdcp
root:
daemo
bin:x
cut -d: -f1-3 passwdcp
root:x:0
daemon:x:1
bin:x:2
paste:垂直粘贴文件。
-d 指定分隔符
-s 合并行
wh1516@PinkRAY:~/桌面$ ls | paste -s -d"::\n"
1.txt:c:cachelab-handout
ch3:CH4:ch6emp.tar.gz
cond_exp.c:datalab-handout:lab2
lab3:lab4:linux
linuxch6:OS
//paste把所有行合并为一行,分隔符三个: : \n
//按次序插入分隔符
sort:对文件内容排序。(以行为单位)
-tchar 用char作为分隔符识别字段
-k m,n 对第m个字段开始到第n个字段结束进行排序
-k m.n 对第m个字段的第n个字符进行排序
-u 删除重复行
-n 数值排序
-r 反转顺序排序
-f 不区分大小写
-c 查看文件是否有序
-o file 将输出存入文件file中,可以和源文件同名
uniq(unique):定位文件中的重复行和非重复行。
-d 选择并显示输入中的重复行
-u 选择并显示输入中的非重复行
-c 显示每行出现的次数
//可与sort配合使用
tr(translate):字符替换将SET1中的字符替换为SET2中的相应字符。【只接受标准输入中的数据,不接受文件作为参数】
tr -option SET1 SET2
-d 删除字符
-s 压缩连续字符
tr ":" ";" < psdex | head -n 3 //:替换为;
tr "[a-z]" "[A-Z]" < psdex | head -n 3 //小写字母替换为大写
tr -d "/" < psdex | head -n 3 //删除/
cmp(compare):逐字对比两个文件的内容,在遇到差异时终止。
cmp -option FILE1 FILE2 SKIP1 SKIP2
-b 输出第一个差异字节数、行数和字符
-l 输出所有差异字节数
-i 忽略文件1起始SKIP1字节和文件2起始SKIP2字节
comm(common):逐行对比文件内容,显示相同行和不同行【需要文件是有序的】。
输出结果分三列显示:
第1列显示FILE1中独有的行
第2列显示FILE2中独有的行
第3列显示共同行
常用选项:
-1,-2,-3: 隐藏显示1,2,3列
diff(difference):显示两个文件的差别,并给出如何使其变得一样。
-q 只在文件不同时显示
-s 只在文件相同时显示
-c 显示相同内容
-u 显示不同内容
-i 忽略大小写
-b 忽略重复空白
前 第一个文件 后 第二个文件
示例分析:
ls -l | sort -k 5 -nr | tr -s " " | cut -d" " -f5,9
以从大到小的顺序列出当前目录中的文件。
ls -l输出列表,用空格分隔的
给列表排序,sort按照第五个字段给其排序(-k 5),按数值排序-n,从大到小-r(不加则从小到大)
替换,把多余空格去掉,tr -s " "
截取 cut -d 只需要文件大小和名字。第五列为大小,第九列为名字
tr " \t:" "\n\n\n" <psdex | sort | uniq -c | pr -t -3
统计一个文件中每个单词出现的次数。
正则表达式过滤器
grep命令查找文件中的某一模式、使用正则表达式描述该模式。
基本正则表达式(BRE),扩展正则表达式(ERE)。sed命令。