Linux的文本处理工具

本文介绍了Linux下常用的文本处理命令,包括less和cat用于文件内容的查看;head和tail用于文件内容的头部和尾部截取;cut和paste用于文本的切割和粘贴;wc用于文本的计数;sort用于文本的排序;uniq用于去除重复行;diff和patch用于文件差异对比及更新;grep用于文本的搜索。这些命令是Linux环境下进行文本操作的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux上有庞大的文本处理工具,功能完善、高效。现在介绍下常用的几个命令。

一.less和cat

cat用于查看文件的内容。不管文件里有多少内容都会列举出来。如果是较长的文件,则不便于浏览。




$扩展,tac表示以行为单位,倒序查看。rec表示将一行的内容倒序查看。

less,用于分页查看文件内容。


在浏览时,可以对文件进行翻页。

向前翻半页 :u,向后翻半页 :d。

向前翻一页 :pageup、b,向后翻一页:pagedown、f、空格键。

向前翻一行:k、ctrl+p、上方向键,向后翻一行:j、ctrl+n、下方向键。

回到第一行:p、g,跳至最后一行:G。

可以对内容进行搜索。

/要搜索的关键字,从第一行搜索。?要搜索的关键字,从最后一行开始搜索。

$more,和less基本一样,但是不能向上翻页和搜索。

二.head和tail

head

head -c 5 filename  获取filename的前5字节。

head -n 5 filename 获取filename的前5行。

tail

tail -c 5 filename  获取filename的后5字节。

tail -n 5 filename 获取filename的后5行。

tail -f filename 跟踪显示文件新追加的内容,常用日志监控

配合使用:获取文件的第二行。


三.cut和paste

cut [OPTION]... [FILE]...
-d DELIMITER: 指明分隔符,默认tab
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c按字符切割
--output-delimiter=STRING指定输出分隔符

paste [OPTION]... [FILE]...
-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示

四.wc

计数单词总数、行总数、字节总数和字符总数
可以对文件或STDIN中的数据运行

-l 来只计数行数
-w 来只计数单词总数
-c 来只计数字节总数
-m 来只计数字符总数

五.sort

把整理过的文本显示在STDOUT,不改变原始文件
sort [options]file(s)
常用选项
-r 执行反方向(由上至下)整理
-n 执行按数字大小整理
-f 忽略(fold)字符串中的字符大小写
-u (独特,unique)删除输出中的重复行
-t c使用c做为字段界定符
-k X按照使用c字符分隔的X列来整理能够使用多次

六.uniq

  从输入中删除前后相接的重复的行
uniq[OPTION]... [FILE]...
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
!!!连续且完全相同方为重复

七.diff和patch

diff

diff  file1  file2 查看file2和file1的区别。

-u选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件。可以结合patch命令进行文件的升级。

八.grep

常用的选项如下:

--color=auto: 对匹配到的文本着色显示
-v: 显示不被pattern匹配到的行
-i: 忽略字符大小写
-n:显示匹配的行号
-c: 统计匹配的行数
-o: 仅显示匹配到的字符串
-q: 静默模式,不输出任何信息
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w:匹配整个单词
-E:使用ERE
-F:相当于fgrep,不支持正则表达式


此命令需要用到正则表达式的知识,正则表达式基本内容如下表:



以上是标准的正则表达式,如果是扩展的正则表达式,即新版的正则表达式,有部分变化。是将特殊字符的转义字符\去掉。

?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次


好了,以上就是Linux下常见的文本处理命令,需要多多练习才能熟练理解并掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值