文本处理

返回主页

一、cat:显示文件内容

cat命令可以用来显示文件内容,合并文件、创建空白文件、追加内容等。

1、cat:语法格式

cat [参数] [文件名]

2、cat:常用参数

参数 描述 参数 描述 参数 描述 参数 描述
-s 显示行数(多个空行算一个编号) -n 显示行数(空行也编号) -E 每行结束处显示$符号 -A 等价于-vET参数组合
-t 等价于-vT参数组合 -b 显示行数(空行不编号) -T 将TAB字符显示为^I符号 -e 等价于-vE参数组合
-v 使用^和M-引用,LFD和TAB除外

3、cat:参考事例

3.1、显示文件内容

[root@converts ~]# cat converts.txt 
地址:www.converts.cn

3.2、合并文件

Linux cat命令的使用

# 1、将 converts.txt、converts1.txt两个文件的内容合并成新的文件
[root@converts ~]# cat converts.txt converts1.txt > converts_new.txt

# 2、查询合并后的内容
[root@converts ~]# cat converts_new.txt
地址:www.converts.cn
Converts工具是一个免费、便捷、在线的工具网站,提供在线工具、Converts、图片压缩、图片转换、图片格式转换、图片转ico、图片识别、GUID生成、文本工具、编码解码、MD5加密、Json、Json格式化、png压缩、jpg压缩、jpeg压缩、Css压缩、博客等在线服务。

3.3、创建文件

通过重定向,可以从键盘输入数据来创建新文件,如 cat > 新文件名,然后输入内容,按Ctrl+D结束输入。

# 1、创建文件
[root@converts ~]# cat > new_file.txt
我是新文件[root@converts ~]# cat new_file.txt 
我是新文件

3.4、追加内容

使用双大于号(>>)可以将内容追加到现有文件的末尾,而不是覆盖它。如cat 追加内容 >> 文件名

# 1、将converts.txt 内容追加到 converts1.txt 文件中
[root@converts ~]# cat converts.txt >> converts1.txt 

# 2、查看追加后的内容
[root@converts ~]# cat converts1.txt 
Converts工具是一个免费、便捷、在线的工具网站,提供在线工具、Converts、图片压缩、图片转换、图片格式转换、图片转ico、图片识别、GUID生成、文本工具、编码解码、MD5加密、Json、Json格式化、png压缩、jpg压缩、jpeg压缩、Css压缩、博客等在线服务。
地址:www.converts.cn

3.5、行号显示

[root@converts ~]# cat -n converts1.txt 
     1  Converts工具是一个免费、便捷、在线的工具网站,提供在线工具、Converts、图片压缩、图片转换、图片格式转换、图片转ico、图片识别、GUID生成、文本工具、编码解码、MD5加密、Json、Json格式化、png压缩、jpg压缩、jpeg压缩、Css压缩、博客等在线服务。
     2  地址:www.converts.cn

3.6、特殊字符显示

使用-v-vE等选项可以显示不可见字符,如制表符、换行符等,这对于检查文件格式非常有用。

3.7、空白行处理

-s--squeeze-blank选项可以将连续的空行压缩为一行。

# 1、查看文件内容,有很多空行
[root@converts ~]# cat converts.txt 
地址:www.converts.cn





上面有很多空行

# 2、将连续的空行压缩为一行
[root@converts ~]# cat -s converts.txt 
地址:www.converts.cn

上面有很多空行

二、more:分页显示文件内容

more命令的功能是分页显示文本文件的内容。当一个文本的内容比较长,使用cat命令进行查看文件,满屏的输出,对用户不友好,这时就可以使用more命令进行分页查看了。该命令可以把文本内容一页一页地显示在终端界面上。常用的按键指令如下:

  • Enter键:查看下一行
  • 空格键:查看下一页
  • b 键:查看上一页
  • q键 或 Ctrl +C:退出查看

1、more:语法格式

more [参数] [文件名]

2、more:常用参数

参数 描述 参数 描述 参数 描述
-s 将多个空行压缩成一行显示 -f 统计实际的行数,而非自动换行的行数 -数字 设置每屏显示的最大行数
+数字 设置从指定的行开始显示内容 +/关键词 从指定关键词开始显示文件内容 -c 不滚屏,先显示内容再清除旧内容
-p 先清除屏幕再显示文本文件的剩余内容

3、more:参考事例

3.1、先进行清屏操作,随后以每次20行内容的格式显示指定的文件内容

[root@converts ~]# more -c  -20 /etc/nginx/nginx.conf

文本处理

三、grep:在文件中搜索特定模式的文本

grep命令是(global regular expression print)的缩写,意为全局正则表达式打印。该命令用于在输入数据中搜索包含指定模式(通常是一个正则表达式)的,并将这些行打印出来。

1、grep:语法格式

grep [参数] [文件名]

2、grep:常用参数

参数 描述 参数 描述 参数 描述 参数 描述
-b 显示匹配行距文件头部的偏移量 -o 显示匹配词距文件头部的偏移量 -c 只显示匹配的行数 -q 静默执行模式
-E 支持扩展正则表达式 -r 递归搜索模式 -F 匹配固定字符串的内容 -s 不显示没有匹配文本的错误信息
-h 搜索多文件时不显示文件名 -v 显示不包含匹配文本的所有行 -i 忽略关键词大小写 -w 精准匹配整词
-l 只显示符合匹配条件的文件名 -x 精准匹配整行 -n 显示所有匹配行及其行号

3、grep:参考事例

3.1、搜索指定文件中包含关键字的指定行

# 搜索文件中是否包含`在线工具` 关键字
[root@converts 2024-05-14]# grep 在线工具 2024-05-14.log
在线图片裁剪工具免费提供:在线工具,图片裁剪,图片镜像,图片旋转,在线图片截取,在线裁剪等功能。

3.2、从多个文件中查询包含关键字的指定行

# 从多个文件中搜索是否包含`在线工具` 关键字
[root@converts 2024-05-14]# grep 在线工具 2024-05-14.log 2024-05-141.log
在线图片裁剪工具免费提供:在线工具,图片裁剪,图片镜像,图片旋转,在线图片截取,在线裁剪等功能。
..................省略部分输出.........................

# 显示从多个文件中查询匹配的行数
[root@converts 2024-05-14]# grep -c 在线工具 2024-05-14.log 2024-05-141.log
2024-05-14.log:97
2024-05-141.log:81

3.3、查询匹配的行数

# 只显示匹配的行数
[root@converts 2024-05-14]# grep -c 在线工具 2024-05-14.log
97

3.4、对查询的结果根据关键字进行筛选

# 例1:对查询的容器信息进行关键字筛选
[root@converts ~]# docker ps | grep converts
fad9f94e107a   converts.web.entry             "dotnet Converts.Web…"   20 hours ago   Up 20 hours   9200/tcp, 0.0.0.0:9200->80/tcp, :::9200->80/tcp          converts.web.entry

# 例2:查询结果可以是任何的文本流, 比如下属的也是支持,如下图所示
[root@converts Logs]# ll | grep 2024-05

Linux grep 筛选命令案例

四、awk:文本处理工具(处理结构化文本)

awk命令是一种强大的文本分析和处理工具(最早由Alfred V. Aho、Peter J. Weinberger 和 Brian W. Kernighan三位作者开发,其名称也来源于他们的姓氏首字母)。awk主要用于处理具有结构化的文本数据,通过指定的规则对文件或输入流中的每一行进行处理,执行诸如搜索、替换、数据提取、统计汇总等多种操作。

grepawk 命令配合使用,可以很方便的对数据,并对数据的输出列进行筛选。

1、awk:语法格式

awk [参数] [文件名]

2、awk:常用参数

参数 描述 参数 描述 参数 描述 参数 描述
-c 使用兼容模式 -m 对指定值进行限制 -e 指定源码文件 -n 识别输入数据中的八进制和十六进制数
-f 从脚本中读取awk命令 -F 设置输入时的字段分隔符 -O 启用程序优化 -v 定义一个变量并赋值
-v 自定义变量信息

3、awk:参考事例

3.1、对查询的结果进行指定列的输出

#  对查询结果,进行第1,第9 列的输出(多个列使用逗号分隔) 。
[root@converts 2024-05-14]# ll | awk '{print $1,$9}'

awk对查询的结果进行列的筛选输出

3.2、根据‘-’为分隔符,对文本行进行分隔

# 根据分隔符 ‘-’,对整行的数据进行分割,分割后的数据成了新的‘列’
[root@converts ~]# ll 
total 8 
drwxr-xr-x 4 root root 4096 Feb  6 17:19 FastTunnel
drwxr-xr-x 4 root root 4096 May 14 15:24 scout-demo-service

# 开始分割输出, 输出第1列和第2列
[root@converts ~]# ll | awk -F - '{print $1,$2}'
total 8 
drwxr xr
drwxr xr
[root@converts ~]#

awk使用样例

3.3、grep 和 awk 配合使用

grepawk 配合使用可以很方便的对数据,并对数据的输出列进行筛选

# 1、筛选前数据清单
[root@converts ~]# docker images 
REPOSITORY                       TAG                 IMAGE ID                  CREATED                     SIZE
converts.web.entry            latest            4b263c45a378           43 hours ago               621MB
mini.syshub                        latest           699124f2772a            3 months ago               396MB
mysql                                 8.1.0             ae2502152260           9 months ago               574MB
databack/mysql-backup   latest              76330beee8b1        12 months ago              256MB

# 查询 converts.web.entry 容器的,并输出查询结果的镜像id
[root@converts ~]# docker images | grep -w 'converts.web.entry' | awk '{print $3}'
4b263c45a378

五、sed:流编辑器,用于文本替换、删除、插入等操作

sed命令是(stream editor)的缩写,该命令能够对文本文件执行各种文本操作,如搜索、替换、删除、添加行等,而无需直接修改文件或显示整个文件内容。sed的工作原理是一次读取一行内容,对其进行处理后输出,再读取下一行,直至文件结束

1、sed:语法格式

sed [参数] [文件名]

2、sed:常用参数

参数 描述 参数 描述 参数 描述
-e 使用指定脚本处理输入的文本文件 -n 仅显示脚本处理后的结果 -f 使用指定脚本文件处理输入的文本文件
-r 支持扩展正则表达式 -i 直接修改文件内容,而不输出到终端

3、sed:参考事例

3.1、文本替换

# 1、查询待转换的文本
[root@converts ~]# cat sed.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线转换网站

# 2、对文本进行替换 ,s 是替换命令,g 表示全局替换,即在每一行中所有匹配项都会被替换。
[root@converts ~]# sed 's/转换网站/工具转换网站/g' sed.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线工具转换网站

# 3、查询原文本,源文件的内容并没有被修改
[root@converts ~]# cat sed.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线转换网站
[root@converts ~]#

sed文本替换

3.2、替换文本,并保存至源文件

# 1、查询替换前文件
[root@converts ~]# cat sed.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线转换网站

# 2、开始替换文本
[root@converts ~]# sed -i 's/转换网站/工具转换网站/g' sed.txt 

# 3、查询替换后的文本
[root@converts ~]# cat sed.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线工具转换网站

六、sort:对文本行进行排序

sort命令的功能是对文件内容进行排序。这个命令非常灵活,支持多种排序规则和选项,使得用户可以根据具体需求来组织数据。

1、sort:语法格式

sort [参数] [文件名]

2、sort:常用参数

参数 描述 参数 描述 参数 描述
-b 忽略每行前面出现的空格字符 -n 依据数值大小排序 -c 检查文件是否已经按照顺序排序
-o 将排序后的结果写入指定文件 -d 除字母、数字及空格字符外,忽略其他字符 -r 以相反的顺序排序
-f 将小写字母视为大写字母 -R 依据随机哈希值进行排序 -h 以更易读的格式输出信息
-t 设置排序时所用的栏位分隔符 -i 除40~176之间的ASCII字符外,忽略其他字符 -T 设置临时目录
-k 设置需要排序的列号 -z 使用0字节结尾,而不是换行 -m 将几个排好序的文件进行合并
-M 将前面3个字母依照月份的缩写进行排序

3、sort:参考事例

3.1、对指定的文件内容按照字母顺序进行排序

# 1、排序前数据
[root@converts ~]# cat sort.txt 
A
B
D
G
F

# 2、按照字母顺序进行排序
[root@converts ~]# sort sort.txt 
A
B
D
F
G

七、uniq:报告或删除重复的行

uniq命令是英文单词(unique)的缩写,其功能主要是去除文件中的重复内容行,只保留唯一的行或者统计重复行的次数。此命令通常与 sort 命令联合使用,因为 uniq 只能处理相邻的重复行。

1、uniq:语法格式

uniq [参数] [文件名]

2、uniq:常用参数

参数 描述 参数 描述 参数 描述
-c 显示每行在文本中重复出现的次数 -u 仅显示没有重复的纪录 -d 设置每个重复纪录只出现一次
-w 仅对前N个字符进行比较 -D 显示所有相邻的重复行 -z 设置终止符(默认为换行符)
-f 跳过对前N个列的比较 -i 忽略大小写 -s 跳过对前N个字符的比较

3、uniq:参考事例

3.1、对指定文件的进行行去重操作

[root@converts ~]# cat uniq.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线转换网站
[root@converts ~]# uniq uniq.txt 
网址:www.converts.cn
名称:在线转换网站
[root@converts ~]#

3.2、统计行出现的次数

[root@converts ~]# cat uniq.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线转换网站
[root@converts ~]# uniq -c uniq.txt 
      2 网址:www.converts.cn
      1 名称:在线转换网站
[root@converts ~]#

八、cut:从文件或标准输入中提取列

cut命令用于从文本文件中提取文本列或字段,并将这些提取的内容输出到标准输出或另一个文件中。

1、cut:语法格式

cut 参数 文件名

2、cut:常用参数

参数 描述 参数 描述 参数 描述
-b 以字节为单位进行分割 -n 取消分割多字节字符 -c 以字符为单位进行分割
--complement 补足被选择的字节、字符或字段 -d 设置分隔符 -f 显示指定字段的内容

3、cut:参考事例

3.1、根据“:”对行进行分割, 并显示对应列

[root@converts ~]# cat cut.txt 
网址:www.converts.cn
网址:www.converts.cn
名称:在线转换网站

[root@converts ~]# cut -d : -f 1 cut.txt 
网址
网址
名称

[root@converts ~]# cut -d : -f 2 cut.txt 
www.converts.cn
www.converts.cn
在线转换网站
[root@converts ~]#

九、tr:字符转换或删除

tr是(text replacer)的简称,该命令主要用于执行简单的文本替换、删除或压缩任务,能够读取来自标准输入的数据,对其进行指定的字符转换操作后,输出到标准输出。

1、tr:语法格式

tr [参数] [字符串1] [字符串2]

2、tr:常用参数

参数 描述 参数 描述 参数 描述 参数 描述
-c 反选字符串1的补集 -t 将字符串1截断为字符串2的长度 -d 删除字符串1中出现的所有字符 -s 删除所有重复出现的字符序列

3、tr:参考事例

3.1、将指定文件中的多个相邻空行去重后输出

# 1、查询文件内容
[root@converts ~]# cat tr.txt 
地址:www.converts.cn





上面有很多空行

# 2、将指定文件中的多个相邻空行去重后输出
[root@converts ~]# tr -s '\n'< tr.txt 
地址:www.converts.cn
上面有很多空行
[root@converts ~]#

3.2、删除文件中所有的字母

# 1、查询文件内容
[root@converts ~]# cat tr.txt 
地址:www.converts.cn





上面有很多空行

# 2、删除文件中所有的字母
[root@converts ~]# tr -d '[a-z]' < tr.txt 
地址:..





上面有很多空行
[root@converts ~]#
164 预览数量 2024-03-28 09:32:47 发布 时间
目录
赞数量
评论数量
返回顶部
暂无评论

暂无评论