Linux文本处理工具

本文详细介绍了文本查看工具如cat、more/less、head、tail,以及grep进行关键字过滤、正则表达式的应用、cut提取列、sort和uniq数据排序与去重、tr文本转换等IT技术在日志分析、数据处理中的应用场景。
摘要由CSDN通过智能技术生成

一:文本查看工具

cat

                查看文本内容,合并文本内容(cat后面可以接上多个文件)

                -n 显示序列号

                -A 显示特殊字符(人眼不可见的)

more/less

分页查看文本内容

more - d  (有提示信息)

less 可以使用v进行编辑,过滤关建字,跳转关键字

head

查看文件开头的内容(默认是查看十行)

 -n 查看指定行数

示例:

head -n 20 passwd 等价于 head -n +20 passwd

head -n -10 passwd 查看除了文件末尾十行的其它内容(最后十行不会显示)

tail

查看文件末尾的内容(默认是查看10行)

-n 查看指定行数

示例:

tail -n 20 passwd 等价于tail -n -20 passwd

tail -n +20 passwd 查看除了文件开头10行的其他内容(开头10行不显示)tail -f 文件 实时监控文件内容,将内容进行追加到文件中并且显示到显示屏上

应用场景:

1.日志排错

查看43到54行内容;固定公式:head查看最大的行数 | tail查看 最大行数-最小行数+1

head -n 54 passwd | tail -n 12

grep

通过关键字进行过滤文件内容

grep根据关键字过滤出来的是关键字所在的行

格式:

grep [选项] 参数

-i 忽略大小写;

-o 只显示匹配关键字的内容;

-c 显示一共匹配到了几行;

-q 静默模式,不输出任何信息(通常和shell脚本联合使用,echo $? 判断是否成功)

        0 成功,非0 失败;

-v 取反,不匹配指定关键字的行;

-Ax 将匹配的行数以及下面x行打印出来;

-Bx 将匹配的行数以及上面x行打印出来;

-Cx 将匹配的行数以及上下x行打印出来;

-r 通过文件的内容搜索文件;

-l 只打印文件的名字(通常和-r 联合使用);

二:正则表达式

作用:

主要是匹配字符串的规律,通过正则能够实现更多复杂的过滤;

        eg: 要过滤以root开头或者以nologin结尾的行数

正则使用元字符表示找规律(^ $ 都是元字符)

基本正则:

^以xxx开头的字符

$以xxx结尾的字符

\< 在字(由数字、字母、下划线组成)的开始进行匹配

\> 在字的结尾进行匹配

.匹配任何单个字符

[abc] 匹配列表内任意单个字符

[^ abc] 不匹配列表内任意单个字符

[a-z] / [0-9] 对a和z或者 0-9 之间的字符进行匹配

\ 反斜杠,转义字符,专门去掉反斜杠后面的单个字符的含义

*表示前一项匹配0次或者多次

.* 表示匹配所有

三:扩展正则

格式:

grep -E 或者 egrep

+ 对前一项进行重复匹配1次或者多次

?对前一项进行0次或者1次重复匹配

{j} 对前一项进行j次重复匹配

{,j}对前一项进行最多j次重复匹配

{j,}对前一项进行最少j次重复匹配

{j,k}对前一项进行最少j次,最多k次重复匹配

(abc) 表示将前一项的内容作为一个整体

示例:

1.egrep ‘ro{1,2}’ /etc/passwdslt 表示匹配s或者匹配t 同时过滤两个关键字

2.egrep ‘error|faild’ -i /var/log/messages

四:cut过滤列和字段

注意:

grep过滤出来的是行,cut过滤出来的是列

cut:

-d 指定分隔符

-f 指定列数

示例:

cut -d: -f3 /etc/passwd

cut -d: -f3,6 passwd 取第3列和第6列

-c 提取指定数量的字符

cut -c 1-3 passwd 取第一个到第三个字符

awk ‘{print $2}’ 默认使用空格为分隔符

-F 指定 分隔符

wc 统计文件的行数、单词数、字节数(文件的大小)

wc /etc/passwd

67 128 3475 /etc/passwd行数 单词数 字节数

wc -l 查看行数

wc -wc 查看单词数、字节数

w 单词数、c字节数

应用场景:

统计文件数量等

五:sort排序工具

sort默认使用字符表的方式排序,不是按照数字的方式排序

sort:

-n 以数字的方式排序(从小到大)

-t 指定分隔符

-k 指定列数

-r 降序(通常和-n联合使用)

-f 忽略大小写

-u 去重重复的内容

uniq:去重工具(只去重相邻重复的行)

uniq和sort联合使用,sort先排序,uniq再进行去重

uniq -c 统计文件中重复的内容

diff和vimdiff比较文件

a 添加

c 修改

d 删除

vimdiff--->vim-enhanced软件包

六:tr文本转换工具

用来做字符转换

方式:

大写转小写,小写转大写,echo abc | tr a-z A-Z

字母转数字,数字转字母,echo 123 | tr 1-3 a-z

tr -d 13 ,删除字符13,在屏幕上删除指定的字符(源文件内容不修改)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值