文本处理工具

cat -E 显示行结束符$ 
    -n 对显示出的结果加行号
    -A 显示所有控制符
    -b 非空行编号
    -s 压缩连续的空行成一行
tac  反向显示结果(多行)
rev  反向显示结果(同一行)
more 分页显示
less 分页显示,功能较多
head 前几行,默认前10行
     -n#  显示前#行
     -c#  显示前#个字节
     -#   显示第#行
tail 后几行,默认前10行
     -f 跟踪显示文件新追加的内容,常用在日志监控(文件删除后不会提示)
     -F 跟踪文件名(文件删除后会提示)
tailf 类似tail -f,当文件不增长是并不访问文件


按列提取文本
cut -d  指定分隔符,默认tab
    -f# 提取第#列,配合-d使用 
    -c# 提取第#个字符
    -b# 提取第#个字节
    --output-delimiter=    指定输出分隔符
合并两个文件同行号的列到一行
paste -d 指定分隔符,默认tab
      -s 所有行合成一行显示


tr 转换和删除字符 
   -c 去字符集的补集,取反              
   -d 删除所有属于第一个字符集的字符
   -s 删除连续重复字符


分析文本工具
文本数据统计:wc  
    输出结果:行 单词 字节 文件名
               -l 统计行数
               -c 统计字节数
               -w 统计单词数
               -m 统计字符数
               -L 输出文本中最长的字符数


文本排序:sort -r  反方向排序
             -R  随机排序
             -n  按数字大小排序
             -f  忽略大小写排序
             -u  删除输出中的重复行
             -t  指定分隔符
             -k#  以#列排序 
uniq 合并重复的行
     -c 显示每行重复的次数
     -d 仅显示重复的行
     -u 仅显示不重复的行
   注:连续且完全相同才算重复


diff 比较文件内容的不同
     -u 显示更全面
patch 跟diff配合使用,恢复文件
      -b 自动备份改变了的文件
例子:
diff -u f1 f2 > f3
patch -b f1 f3


grep 过滤字符
     -f file 跟文件内容匹配
     -v  显示不匹配的行
     -i  忽略大小写
     -n  显示匹配的行号
     -c  统计匹配的行数
     -o  仅显示匹配到的字符串
     -q  静默模式,不输出信息
     -A# 后#行,after
     -B# 前#行,before
     -C# 前后各#行,context
     -w  匹配整个单词
     -e  实现多个选项间的逻辑or关系   grep -e 'cat' -e 'dog'
     -E  =egrep支持正则表达式
     -F  =fgrep只能找固定的文本


练习:
df | tr -s ' ' |cut -d ' ' -f5

提取网卡里面的IP地址
centos6
ifconfig eth0 | head -n2 | tail -n1 |tr -s ' ' : | cut -d ':' -f4
centos7
ifconfig eno16777736 | head -n2 | tail -n1 |tr -s ' '|cut -d ' ' -f3

提取用户名和UID,并以UID由大到小排序
cut -d: -f1,3 /etc/passwd |sort -t: -k2 -nr

统计访问次数最多的前15个IP地址
cat /var/log/httpd/access_log |cut -d' ' -f1 |sort |uniq -c |sort -nr |head -n15

正则表达式
提取网卡里面的IP地址
ifconfig eno16777736 |grep -o "[0-9.]\{7,\}" |head -n1
ifconfig eno16777736 |grep -o "[[:digit:]]\{1,3\}[.][[:digit:]]\{1,3\}[.][[:digit:]]\{1,3\}[.][[:digit:]]\{1,3\}" |head -n1
ifconfig eno16777736 |grep -o "inet [0-9]\+"

取分区利用率
 df |grep "/dev/sd" |grep -o "[0-9]\{1,3\}%" |grep -o "[^%]\+" |sort -nr |head -n1

过滤空行
grep -v "^[[:space:]]*$" file

取系统版本号
grep -o "[[:digit:]]\+" /etc/centos-release |head -n1

取用户名、UID、SHELL
grep -Ew "^(root|wang|abc)" /etc/passwd |cut -d":" -f1,3,7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金牌收租佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值