正则表达式是描述字符排列和匹配模式的一种语法规则。主要用于字符串的模式分割、匹配、查找及替换。(主要为了模糊匹配)
cut命令用于列提取,默认分隔符是tab键。
选项:-d指定分隔符,-f指定提取第几列
例:cut -t ":" -f1 /etc/passwd 已:为分隔符提取文件的第一列
grep "/bin/bash" /etc/passwd | grep -v root | cut -f1 -d ":" 列出系统中普通用户的用户名
①语法格式:awk '条件1{动作1}条件2{动作2}...' 文件
条件,一般使用关系表达式作为条件,如a>10。动作,格式化输出或流程控制语句
awk一次读入一整行,默认以tab键或者空格为分隔符将一行分为多个字段,表示为$1、$2、$3...其中$0表示文件名
例:awk '{printf $2 "\n"}' /etc/passwd 打印文件的第二列,其中的转义字符要加双引号
df -h | grep "/dev/sda5" | awk '{print $5}' | cut -d "%" -f1 显示某分区磁盘使用量百分比
awk '$3>60{printk $4}' filename 关系运算符成立才执行括号中命令
②BEGIN、END作为关系表达式,表示命令执行开始时和结束时
例:awk 'BEGIN{FS=":"}{print $1 "\t" $3}' /etc/passwd 开始执行时FS指定分隔符
awk 'END{print "goodbye"}{print $2}' filename 结束时打印一句话
③补充:格式化输出printf、print
格式:printf '输出类型输出格式' 输出内容
输出类型:%ns,输出n个字符串。%ni,输出n个整数。%m.nf,输出浮点数,n为小数位数,m-n为整数位数
输出格式:\n换行、\r回车、\a输出警告声、\t水平制表符、\v垂直制表符、\b退格符、\f清屏符
print与printf不同之处在于,print自带换行符,比较方便
sed命令主要用来将数据进行选取、替换、删除、新增的命令
sed [选项] '动作' 文件名
选项:-n:只会将sed处理的行输出,否则默认全篇输出
-e:允许进行多个动作
-i:sed修改默认是临时修改,-i选项表示直接修改文件
动作:a:追加,在当前行后添加
c:行替换
i:在当前行前插入
d:删除指定行
p:打印输出指定行
s:字符串替换,格式:行范围s/旧字符串/新字符串/g
例:sed - n '2p' filename 打印输出第二行
sed -i '2,4d' filename 删除2至4行
sed -i '2a helloworld' filename 第二行追加内容
sed -i '3c helloworld' filename 替换第3行
sed -i '3i helloworld' filename 在第3行前插入
sed -i '2s/goodbye/goodnight/g' filename 第2行的goodbye替换为goodnight
sed -ie 's/Sunday/Monday/g;s/Tuesday/Saturday/g' filename 同时多个动作
①sort命令用来排序
sort [选项] 文件名
选项:
-f:忽略大小写
-n:以数值型进行排序,默认是字符串排序
-r:反向排序
-t:指定分隔符,默认分隔符是tab键
-k n[,m]:指定排序的字段范围,n字段开始,m字段结束(可选),默认是到结尾
例:sort /etc/passwd 按首字母排序
sort -t ":" -k "3,3" /etc/passwd 指定冒号为分隔符,以第3字段为排序依据
sort -n -t ":" -k "3,3" /etc/passwd 指定以数字型排序,若以字符串形式排序是先判断第一个字符的顺序,第一个字符相 同再判断第2个字符,以此类推
若以数值排序优先级:1>2>3>12>23>137>258
若以字符排序优先级:1>12>137>2>23>258>3
②wc命令 统计命令
wc [选项] 文件名
-l:只统计行数
-w:只统计单词数
-m:只统计字符数,包括换行符