文本处理工具

本文详细介绍了Linux系统中用于查看文件内容的命令,如cat、more、less,以及分页、搜索、头部和尾部查看等操作。同时,提到了其他实用工具,如cut、paste、sort、uniq、diff、patch,用于文本处理和文件比较。这些命令是Linuxshell脚本和日常系统管理的重要工具。
摘要由CSDN通过智能技术生成

文本查看cat、more、less

cat

-A FILE 显示所有控制符

-n 加行号

-b 非空行加行号=nl file

-s 压缩空白行号

tac 逆向显示内容

rev 每一行的内容逆向显示

  1. 分页查看文件内容

more FILE

空格往下翻,到底退出

Ctrl+b往回翻

q退出

-d 显示页数

  1. less 最好用

/pattern 搜索

n/N 跳转到匹配字符的下一个或上一个

查看行内容head、tail

  1. head

-n # :#为正数,显示前#行,#为负数,不显示后#行

[root@Rocky8~]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@Rocky8~]# seq 10 |head -n 3
1
2
3
[root@Rocky8~]# seq 10 |head -n -3
1
2
3
4
5
6
7
 
tail
  -n #:+#显示从第#行到末行;-#/#显示后#行
[root@Rocky8~]# seq 10 |tail -n 3
8
9
10
[root@Rocky8~]# seq 10 |tail -n -3
8
9
10
[root@Rocky8~]# seq 10 |tail -n +3
3
4
5
6
7
8
9
10

-f 跟踪显示文件新追加的内容,常用于日志监控/var/log/message。当文件删除在建同名文件,将无法继续跟踪文件。

-F 跟踪文件名,当文件删除在建同名文件,将继续跟踪文件

显示纵行信息cut

-d DELIMITER:指明分割符,默认是TAB

-c 按字符切割

-f FILEDS

# 第#个字段

#,#[,#] 离散的多个字段

#-#:连续的多个字段

[root@Rocky8~]# df |cut -d% -f1 |rev |cut -d" " -f1 |rev
Use
0
0
1
0
18
44
1
100
[root@Rocky8~]# df |tr -s ' ' |cut -d" " -f5 |tr -d %
Use
0
0
1
0
18
44
1
100

合并文件paste

横向合并:paste

-d指定分割符

-s 纵向显示转化为横向显示

[root@Rocky8~]# seq 10 |paste -s
1       2      3       4       5      6       7       8      9       10
[root@Rocky8~]# seq 10 |paste -s -d" "
1 2 3 4 56 7 8 9 10
[root@Rocky8 ~]#

纵向合并:cat FILE1 FILE2

分析文本工具wc、sort、uniq

1、wc

-l 计数行数

-w 计数单词总数

-c 计数字节总数

-m 计数字符总数

-L 显示文件中最长行的长度

wc a.txt

40 500 2000 a.txt

行数 单词数 字节数

2、sort

-t 指定分割符

-k# 指定第#列

-n 按数字排序

-r 从大到小排序

-R 随机排序

-u 合并重复

-rnk

3、uniq : 相邻重复去重

-c 显示重复出现的次数

-d 仅显示重复的行

-u 仅显示不重复的行

比较文件diff、patch

diff:比较两个文件的不同

-u 对比两文件,删除,增添内容以达到两文件内容一致

vimdiff

patch:对比两文件内容,还原之前被删除文件的内容

-b 备份改变的文件

diff -u f1.txt f2.txt > f.patch

rm -rf f2.txt

patch -b f1.txt f.patch

tr命令

标准输入实现转换、压缩、和删除

[root@Rocky8~]# tr  'a-z'  'A-Z'
askjdfkjas
ASKJDFKJAS

-d 实现删除

[root@Rocky8~]# echo heaabllccabo | tr -d 'abc'
hello

-s 实现压缩,相邻的压缩

[root@Rocky8~]# echo aaabbbcccaaa | tr -s 'abc'
abca
[root@Rocky8~]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@Rocky8~]# seq 10 | tr  -d  '\n'
12345678910
[root@Rocky8~]# seq 10 | tr  '\n'  '  '  换行替换成空格
1 2 3 4 56 7 8 9 10
[root@Rocky8~]# df  | tr  -s  '  '  + (将多个空格压缩成一个并将空格替换成+)
Filesystem+1K-blocks+Used+Available+Use%+Mounted+on
devtmpfs+966976+0+966976+0%+/dev
tmpfs+996036+0+996036+0%+/dev/shm
tmpfs+996036+9680+986356+1%+/run

cat实现多行重定向

[root@Rocky8~]# cat > a.txt <<!
> a
> b
> c
> d
> !(可换)
[root@Rocky8~]# cat a.txt
a
b
c
d

tee,支持标准输入

读取标准输入既可以存入文件,会自动创建此文件中也可以在屏幕中显示

-a 追加,tee默认覆盖

[root@Rocky8~]# echo -e 'line1\nline2\nline3' |tee a.log
line1
line2
line3
[root@Rocky8~]# cat a.log
line1
line2
line3

-a 追加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值