常见文本处理工具

1 文件内容查看命令

1.1 查看文本文件内容

cat可以查看文本内容

格式:cat [OPTION]... [FILE]...

选项:

-E: 显示行结束符$

-A: 显示所有控制符

-n: 对显示出的每一行进行编号

-b: 非空行编号

-s: 压缩连续的空行成一行

tac 逆向显示文本内容

nl 显示行号,相当于cat -b

rev 将同一行的内容逆向显示

1.2 查看非文本文件内容
1.2.1 hexdump
1.2.2 od
1.2.3 xxd
2 分页查看文件内容

more 可以实行分页查看内容,可以配合管道实现输出信息的分页

格式:more [OPTIONS...] FILE...

选项:

-d: 显示翻页及退出提示

less 也可以实现分页查看文件或STDIN输出

查看时有用的命令包括:

/文本 搜索文本

n/N 跳到下一个/上一个匹配

less命令是man命令使用的分页器

3 显示文本前或后行内容
3.1 head

head 可以显示文件或标准输入的前面行

格式:head [OPTION]... [FILE]...

选项:

-c# 指定获取前#字节

-n# 指定获取前#行

-# 同上

范例:

 [root@Rookie Code]# head -c 3 /etc/passwd
 roo
 ​
 [root@Rookie Code]# head -n 3 /etc/passwd
 root:x:0:0:root:/root:/bin/bash
 bin:x:1:1:bin:/bin:/sbin/nologin
 daemon:x:2:2:daemon:/sbin:/sbin/nologin
 ​
 [root@Rookie Code]# head -3 /etc/passwd
 root:x:0:0:root:/root:/bin/bash
 bin:x:1:1:bin:/bin:/sbin/nologin
 daemon:x:2:2:daemon:/sbin:/sbin/nologin
3.2 tail

tail 和head相反,查看文件或标准输入的倒数行

格式:tail [OPTION]... [FILE]...

选项:

-c# 指定获取后#字节

-n# 指定获取后#行

-# 同上

-f 跟踪显示文件fd新追加的内容,常用于日志监控,相当于--follow=descriptor,当文件删除在新建同名文件,将无法继续跟踪文件

-F 跟踪文件名,相当于--follow=name --retry,当文件删除再新建同名文件,将可以继续跟踪文件

tailf 类似于tail -f,当文件不增长时并不访问文件

4 按列抽取文本

cut命令可以提取文本文件或STDIN数据的指定列

格式:cut [OPTION]... [FILE]...

选项:

-d DELIMITER:指明分隔符,默认tab

-f FILEDS:

#:第#个字段。例如:3

#,#[,#]:离散的多个字段。例如:1,3,6

#-#:连续的多个字段。例如:1-6

混合使用:1-3,7

-c 按字符切割

--output-delimiter=STRING指定输出分隔符

范例:获取本机ip

 [root@Rookie Code]# ifconfig | head -n2 |tail -n1|cut -d" " -f 10
 192.168.48.111

范例:

 [root@Rookie Code]# cut -d: -f1,3,7 --output-delimiter="---" /etc/passwd
 root---0---/bin/bash
 bin---1---/sbin/nologin
 daemon---2---/sbin/nologin
5 合并多个文件

5.1 paste 合并多个文件同行号的列到一行

格式:paste [OPTION]... [FILE]...

选项:

-d 分隔符: 指定分隔符,默认用Tab

-s: 所有行合成一行显示

范例:

 [root@Rookie Code]# paste alpha.log seq.log 
 a   1
 b   2
 c   3
 [root@Rookie Code]# paste -s alpha.log seq.log 
 a   b   c
 1   2   3
 [root@Rookie Code]# paste -d: alpha.log seq.log 
 a:1
 b:2
 c:3
6 分析文本的工具

文本数据统计:wc

整理文本:sort

比较文件:diff和patch

6.1 收集文本统计数据

wc命令可用于统计文件的行总数、单词总数、字节总数和字符总数可以对文件或 STDIN中的数据统计 选项: -l 只计数行数 -w 只计数单词总数

-c 只计数字节总数 -m 只计数字符总数 -L 显示文件中最长行的长度

6.2 文本排序sort

把整理过的文本显示在STDOUT,不改变原始文件

格式:sort [options] file(s) 选项: -r 执行反方向(由上至下)整理 -R 随机排序 -n 执行按数字大小整理 -f 选项忽略(fold)字符串中的字符大小写 -u 选项(独特,unique)删除输出中的重复行 -t c 选项使用c做为字段界定符 -k # 选项按照使用c字符分隔的#列来整理能够使用多次

6.3 去重uniq

uniq命令从输入中删除前后相接的重复的行

格式:uniq [OPTION]... [FILE]...

选项:

-c:显示每行重复出现的次数

-d:仅显示重复过的行

-u:仅显示不曾重复的行

uniq常和sort命令一起配合使用

6.4 比较文件
6.4.1 diff

diff命令比较两个文件之间的区别

6.4.2 patch

patch 复制在其他文件中进行的改变(要谨慎使用)

适用 -b选项来自动备份改变了的文件

选项:

-d:后面可以接分隔字符,默认以TAB来分隔

-:如果file部分写成-,表示来自标准输入的数据的意思

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值