shell的简单文本处理命令
########################
6.文本处理
#######################
(1)grep
-i (条件)##忽略大小写
-v ##条件取反
-c ##统计匹配行数
-q ##静默,无输出成功就是yes失败就是no
-n ##显示匹配结果所在的行号
'^r' ##显示某个文件内容里包含r开头的行
(2)egrep
'^root|^daemon' ##匹配root或daemon开头的行
-m10 ‘/sbin/nologin’ ##-m后接行数表示从上到下看匹配所有结果前10行
-c '/sbin/nologin' /etc/passwd ##看文件内包含引号内容的行数
'.' ##匹配所有不包括空行
-v ##条件取反
'^$' ##^表示开头$表示结尾,一开头就结尾就是匹配空行
'f+' ##匹配至少有一个f的行
'color(ful)?' ##匹配color或colorful
'(we){3}' ##匹配we只匹配三次
'(we){2,4}' ##最少2最多4次
'(we){3,}' ##最少匹配3次无上限
'(we)[ab]' ##匹配we后有a或b
'[A-Z]' ##匹配包含大写字母A到Z任意一个字母的行
(3)cut
-d : -f 1-3 /etc/passwd ##-d指定分隔符号为:-f指定符号左边的内容
(1,3为1和3),(1-3为1到3)
cut -c 1,4 passwd ####显示第一和第四个字符
找出主机ip
ifconfig eth0 | grep "inet " | cut -d " " -f 10
脚本检测ip是否在工作
#!/bin/bash
ping -c1 -w1 172.25.254.$1 &> /dev/null && echo "172.25.254.$1 is up" || echo "172.25.254.$1 is down"
###############
8.sort
################
sort
(文件) ##按第一个数字大小排序
-n ##按整体数字大小排序
-u ##去掉重复数字
-t ##指定分隔符
-k ##指定排序的列
-o ##输出到指定文件中,可以把排序的结果保存下来
###############################
9.uniq命令处理重复字符
###############################
uniq
-u ##显示唯一的行
-d ##显示重复的行
-c ##每行显示一次并统计重复次数
练习:将/tmp目录中的文件取出最大的
ls -Sl /tmp/ | head -2 | cut -d " " -f 9