一,普通剑客
1,cut使用指定的规则来切分文本
(1)使用案例
创建一个aa文件
[root@localhost ~]# vim aa
I 1love 2love
I l1ove l2ove
I 1love 2love 3love
I l1ove l2ove 3love
I1love 2love 3love
使用l分割(-f 1显示第一个l前的 ;-f1,2显示从头到第二个l间的不包括第二个l,-f 2 显示第一个l和第二个l间的l不显示)
示例
cut -d 'l' -f1 aa
运行结果:
cut -d 'l' -f1,2 aa
运行结果:
2, sort 对文本中的行进行排序
(1)以指定的符号分割按照第三列进行排序
# 按照字符串比较,1001 在2前面(先比较第一个字符在比较第二个)
sort -t ':' -k3 passwd1
(2)逆序 -r
sort -t ':' -k3 -r passwd1
(3)按照数值大小进行排序(如果有字母,字母在前)
sort -t ':' -k3 -n passwd1
3,wc统计单词数量
(1)统计单词行数
wc -l passwd1
(2)统计单词数量(以空格来区分)
wc -w passwd1
(3)统计字节数
wc -c passwd1
二,强大剑客
grep : 过滤文本 sed : 修改文本 awk : 处理文本
1,grep 对文本进行搜索(文件中)
(1)从文件passwd1和2中找到有root的那行
# 从文件passwd1和2中找到有root的那行
grep root passwd1 passwd2
(2)显示行号 -n
grep -n root passwd1 passwd2
(3)使用正则表达式 -E
grep -E 'r.*?t:' passwd1 passwd2
(4)显示不匹配的忽略大小写-nvi(i忽略大小写,v显示不匹配的)
grep -niv -E 'ro.*?t:' passwd1
2,sed从管道中读取一行处理一行
(1)替换字符串books替换aa中love(原文件也进行修改加 -i参数)
# 替换每行第一个
sed 's/love/books/' aa
# 替换所有
sed 's/love/books/g' aa
# 从第二个开始替换
sed 's/love/books/2g' aa
(2)打印发生替换的行
sed -n 's/1love/books/p' aa
(3)删除
# 删除空白行
sed '/^$/d' aa
# 删除第二行
sed '2d' aa
# 删除文件第二行到末尾
sed '2,$d' aa
(4)添加
# 从第二行每隔两行添加
sed '2~2a =====' aa
# 从第二行到第五行
sed '2,5a ====' aa
# 第n行到n+m行
sed '2,+3a ====' aa
# 第n行到最后一行
sed '2,$a =====' aa
3,awk用来处理文本,将文本按照指定的格式输出。其中包含了变量,循环以及数组
语法格式:
awk [参数] [处理内容] [操作对象]
使用案例:
(1)指定分隔符“:”并截取第六个字段
awk -F ":" '{print $6}' aa
(2)输入第二,第三列内容
awk '{print $2,3}' aa
(3)输出第四行之后的:
awk '(NF>=4){print}' aa
(4)使用awk打印ip
ifconfig ens33 | grep "netmask" | awk -F" " '{print $2}'