cat
n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行)
-A显示隐藏字符
paste
paste 文件1 文件2 横向合并 cat纵向合并
paste -d 文件1 文件2 #指定分隔符
less
less [选项] 文件名
可以使用/ 查找 n向下 N向上查找
Page Up 向上翻页,Page Down 向下翻页
/word 搜索word字符串
空格键 显示手册页的下一屏幕
Enter 键 一次滚动手册页的一行
b 回滚一屏 f 向前一屏
grep
grep [选项]… 查找条件 目标文件 #只过滤文件
-v 排除匹配条件
-i 忽略大小写
-o 只显示匹配条件
-r 递归 快速过滤 不过滤软连接
-R 递归目录,但处理软链接
-w 把字符串看成单词
-n 显示匹配内容的所在文件中行数
-A # after, 后#行
grep -A3 root /etc/passwd #匹配到的行后3行业显示出来
-B # before, 前#行
-C # context, 前后各#行
-q 静默模式,不输出任何信息
-c 统计匹配的行数
-f file 根据模式文件,处理两个文件相同内容 把第一个文件作为匹配条件
-m # 匹配#次后停止
^开头 $结尾 ^$空行
tr
tr [选项]... SET1 [SET2] #替换
-d 删除
-s 压缩
-c 保留字符集1的字符,其他字符包括换行符\n用字符集2替换。
[root@localhost ~]#tr 12345678 abc
#最后一个一直用
123456789
abcccccc9
[root@localhost ~]#tr -s " "
1 2 3 4
1 2 3 4
[root@localhost ~]#cat 1.txt |tr -c "[a-z]" " "
#用 空格替换除了小写字母之外的所有字符
aaaaa bbbbb
[root@yuji ~]# cat 4.txt| tr -s "\n" //将连续的换行符压缩成一个 过滤空行
11 22 33
[root@yuji ~]# cat 4.txt| grep -v "^$" //过滤出非空行
11 22 33
[root@yuji ~]# echo $PATH | tr ":" "\n" //分行输出环境变量PATH中包含的所有目录
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
wc
wc [选项]... 目标文件..
-l 统计文件行数 -c 字节数 -w单词数
cut
cut [选项]... [文件]...
-d DELIMITER: 指明分隔符,默认tab
-f 想要获取的字段
#: 第#个字段,例如 3
#,#[,#]:离散的多个字段,例如 1,3,6
#-#:连续的多个字段, 例如 1-6
混合使用:1-3,7
-c 取字符
[root@localhost ~]#ll |tail -n +2 |tr -s " "| cut -d" " -f3,9
#将空行压缩成一个后 再空格为分隔符 取 第3 和第9列
[root@node01 ~]# head -2 test02.data|cut -c 5
截取出test02.data文件中前2行的第5个字符
sort
sort [选项]... [文件]...
不加任何选项,则默认按首字母排序
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-h 人类可读排序,如: 2K 1G
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique),去重并排序
-t 指定分隔符
-k 指定列
uniq
uniq [选项]... [文件]..
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
uniq只去重连续行 全行去重需要uniq和sort 命令一起配合使用
#面试题 取两个文件一样或不一样的字段
[root@localhost ~]#cat f1.txt f2.txt
a
b
c
1
a
2
b
3
c
[root@localhost ~]#cat f1.txt f2.txt |uniq -d
#直接使用 看不出来
[root@localhost ~]#cat f1.txt f2.txt |sort |uniq -u
#一样的
1
2
3
[root@localhost ~]#cat f1.txt f2.txt |sort |uniq -d
#不一样的
a
b
c