cat
cat命令可以查看文本内容
格式:
cat [option]....[file]...
常见选项:
-E :显示行结束符$
-A : 显示所有控制符
-n :对显示得每一行进行编号
-b:对非空行不进行编号
-s :压缩连续得空行为一行
范例:
综合案例:
显示非空行的行号,对连续的空行进行压缩并显示每行的结束符
[root@192 文本处理测试]# cat -b -s -E ss.txt
tac
倒叙显示文本内容(以行为单位进行倒叙显示)【rev 这个命令可以将每行的内容以单词为单位倒叙排列】
more
实现对文件的分页显示,可以配合管道实现输出信息分页显示(到文件末尾自动退出)
格式
more [options..] FILE
选项:
-d: 显示分页及退信息
less
less 命令也可以实现分页显示文件内容,且功能比more命令更加丰富
回车键:向下翻一行
空格键:向下翻一屏
b :向上翻一页
d :向后翻半页
u :向上翻半页
格式:
less [option].... FILE
option:
-N :显示每行行号
head
显示文件的前几行,默认前十行
格式:
head [option].. feile
option:
-c # :指定获取前多少个字节
-n # :指定获取前#行,若#为负数则取文件第一行到倒数#行的内容
-# : 获取前#行
tail
功能和tail命令类似,获取文件的末尾多少行
格式:
tail [option] .. file
选项:
-f : 实时显示文件新增内容
-c # :指定获取后多少个字节
-n# : 指定获取文件末尾#行,若#为负数,则从倒数#开始到文件结束
-# :同上
cut
用于提取文本数据的指定列
格式:
cut [option].. [file]..
option:
# : 第几个字段 。如3
-f FILEDS:
#: 第#个字段,例如:3
#,#[,#]:离散的多个字段,例如:1,3,6
#-#:连续的多个字段, 例如:1-6
混合使用:1-3,7
-c 按字符切割
--output-delimiter=STRING指定输出分隔符
范例:
以冒号作为分割符,输出/etc/passwd 文件中第1列 3-4列 和第7列
[root@192 ~]# cut -d: -f1,3-4,7 /etc/passwd
获取ifconfig命令输出的本机网卡IP地址
[root@192 ~]# ifconfig |head -n2 |tail -n1|cut -d" " -f10
向/etc/passwd 的第一列,第三列,第七列添加“@@@”作为分割符分割符
[root@192 ~]# cut -d: -f1,3,7 --output-delimiter="@@@" /etc/passwd
用cut命令计算1加到50的结果
[root@192 ~]# echo {1..50} | cut -d' ' -f1-50 --output-delimiter="+" | bc
获取分区利用率并按照分区利用率降序排列
[root@192 ~]# df | tr -s " " | cut -d' ' -f5,6 | tail -n +2| sort -k1 -nr
paste
paste 命令用于合并多个文件同行号内容到一行
格式:
paste [option]... FILE
OPTION:
-d : 指定分割符,默认以TAB为分割符
-s :所有行合并成一行显示
范例:
批量修改密码
用户名文件
[root@192 ~]# cat user.txt
test1
test2
密码文件
[root@192 ~]# cat psss.txt
qazxsw
qazxsw
合并用户名及密码实现批量修改密码
[root@192 ~]# paste -d: user.txt psss.txt | chpasswd
文本排序 sort
将整理后的文本输出到stdout ,不改变远来的文件
格式:
sort [option].. file
常用option:
-k #: 指定根据那一列排序
-u : 合并重复项 ,即去重
-r : 反向整理,既倒叙
-n : 按行按数字大小整理
-h : 按人类可读的方式整理 如KB GB
-f : 忽略字符串中的字符大小写
-t c : 使用c作为字符界定符
范例:
#获取/usr/目录下所有文件的大小,并以可读方式排序
[root@192 usr]# du -h | sort -k1 -h
#获取访问NGINX的IP数量
[root@192 usr]# cut -d' ' -f1 /var/log/nginx/access.log | sort -u | wc -l
去重 uniq
uniq命令可从输入中删除相邻的相同行
格式:
uniq [option]...[file]....
选项:
-c :显示每行重复的次数
-d : 仅显示重复过的行
-u : 仅显示不曾重复的行
范例:
#获取访问NGINX 最多的IP并显示访问次数
cut -d' ' -f1 /var/log/nginx/access.log | sort |uniq -c | sort -n| tail -f -n3
#取两个文件得相同和不同
相同
[root@192 usr]# cat ss.txt test.txt | sort |uniq -d
不同
[root@192 usr]# cat ss.txt test.txt | sort |uniq -u
练习
#找出ifconfig “网卡名” 命令结果中本机的IPv4地址
[root@192 usr]# ifconfig |tr -s ' '| head -n +2| tail -f -n1|cut -d' ' -f3
#查出分区空间使用率的最大百分比值及分区
[root@192 usr]#df -h | tr -s ' ' % | cut -d% -f5,6|sort -k1 -n | tail -f -n1
#查出用户UID最大值的用户名、UID及shell类型
[root@192 ~]# cat /etc/passwd | sort -k3 -n| cut -d: -f1,3,7| tail -f -n1