文本处理命令
命令**head tail more less tr cut paste wc**
磁盘分区利用率
df|tr -s ' ' :|cut -d : -f5 df|tr -s ' ' :|cut -d : -f5|tr -d % df|tr -s ' ' %|cut -d % -f5
取出ifconfig中的ip
ifconfig|head -n2|tail -n1|tr -s " " :|cut -d : -f3 ifconfig|head -n2|tail -n1|tr -s " "|cut -d" " -f3 ifconfig|head -n2|tail -n1|cut -dt -f2|cut -dn -f1 #拿字母做分割符
cut
每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
cut [-bn] [file]
cut [-c] [file]
cut [-df] [file]
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除
示例:
who|cut -b 3 who|tr -s ' '|cut -d ' ' -f 4
cut的缺陷和不足:处理多空格…..如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容
paste 合并两个文件同行号的列到一行
pasete[OPTION]...[FILE]... -d
分割符:指定分隔符,默认用TAB
-s:所有行合成一行显示
示例 paste f1 f2 paste -s f1 f2
wc 手机文本统计数据 计数单词总数、行总数、字节总数和字符总数
-l 只统计行数
-w 只统计单词书
-c只统计字节数
-m只计算字符总数
-L显示文件中最长行的长度
统计profile有多少个单词
cat /etc/profile|tr -cs [a-zA-Z] '\n'|wc -l
文本排序sort
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k x 选项按照使用c字符分隔的x列来整理能够使用多次
df|tr -s " " "%"|cut -d% -f5|sort -n|tail -n1
uniq
uniq命令:从输入中删除前后相接的重复的行
uniq[OPTION]...[FILE]...
-c:显示每行重复出现的次数
-d:仅显示重复过的行
-u:仅显示不曾重复的行
注:连续且完全形同方位重复
常和sort命令一起配合使用:
sort userlist.text|uniq -c
取出httpd连接最多的10个ip
cut -d" " -f1 /var/log/httpd/access_log|uniq -c|sort -nr|head
取两个文件的交集
cat f1 f2|sort|uniq -d
取两个文件的并集
cat f1 f2|sort -u
linux文本处理三剑客
grep:文本过滤(模式:pattern)工具
grep,egrep,fgrep(不支持正则表达式搜索)
grep root /etc/passwd
sed:stream editor,文本编辑工具
awk:linux上的实现gawk,文本报告生成器
grep命令选项
--color=auto: 对匹配到的文本着色显示
-v:显示不被pattern匹配到的行
-i:忽略字符大小写
-n:显示匹配的行号
-c:统计匹配的行数
-o:仅显示匹配到的字符串
-q:静默模式,不输出任何信息
-A #:after,后#行
-B #:before,前#行
-C #:context,前后各#行
-e:实现多个选项间的逻辑or关系
grep -e ‘cat’ -e ‘dog’ file
-w:匹配整个单词
-E:使用ERE
-F:相当于fgrep,不支持正则表达式
-f file:根据模式文件处理
取出局域网内所有ip地址
nmap -v -sP 192.168.0.0/24|grep -B1 up|grep report