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 递归 快速过滤 不过滤软连接
-w 把字符串看成单词
^开头 $结尾 ^$空行
tail
tail -f 动态显示后n行
tail -n +3 从第3行开始往后显示
tail -n -3 显示除了倒数后3行
tail -3 显示倒数第3行
tr
tr [选项]... SET1 [SET2] #替换
-d 删除 -s 压缩 -c 除了字符串1中字符集替换成字符集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
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常和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
awk
awk '/搜索字符/' score.txt
从score.txt 搜索含有 "搜索字符"的行
[root@node01 ~]# awk '/zhangsan|lisi/' score.data
zhangsan 85 90 100
lisi 65 70 95
awk -F '分隔符' '{print $1, $2, $3}'
按照指定分隔符分割文件中每行,并打印第一、二、三列
-F 选项的作用是指定分隔符。如果不加 -F 选项,则以空格或者 tab 为分隔符。
print 为打印的动作,用来打印某个字段。$1 为第 1 个字段,$2 为第 2 个字段,以此类推。
但 $0 比较特殊,它表示整行
压缩和解压缩