Shell脚本基础从头开始(十一)── shell的文本过滤(二)

本文介绍了Linux中四个常用的文本处理命令:sed用于编辑文本文件,例如删除、插入和替换行;sort用于对文本进行排序;uniq处理重复行,常与sort配合使用;split则能将大文件分割成小文件。了解这些命令能帮助你更有效地管理和处理文本数据。

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

sed 命令

sed 可依照脚本的指令来处理、编辑文本文件,主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法:sed [-e\<script>][-f<script文件>][目标文件]
说明:
-e<script>或–expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或–file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
动作说明:

a新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d删除,因为是删除啊,所以 d 后面通常不接任何东西
i插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

只打印第二行,不打印其他的行

sed -n '1,4'p  file.txt 

打印从第一行到第四行的记录

sed -n '1,4'p  file.txt

把第一行和第二行全部删除

# 只针对该命令的结果,不会作用于原文件
sed '1,2'd file.txt

sort 命令

sort命令,顾名思义是排序的作用,以一行内容为一个整体进行排序。
语法:cat [选项]… [文件]…
将file.txt文件的内容升序显示

cat file.txt | sort

倒叙排序

sort -f file.txt

uniq 命令

uniq用于重复数据处理,使用前先sort排序(因为在 uniq 中定义的重复是指相邻的两行数据完全一样,排序以后相同的内容会被排到一起)。
语法:uniq [选项]... [文件]
打印重复行出现的次数(紧挨着的)

uniq -c file.txt

只打印重复的行(出现两次及以上的行)

uniq -d file.txt

打印出文件内的唯一值

uniq file.txt

split 命令

split 分裂、分割的意思,起作用是把一个大文件按行切割成小文件。
语法:split [选项]... [目标文件 [前缀]]
把 file.txt 按每20行分割成一个文件,每个文件都是以spt开头的

split -20 file.txt spt

默认是以 x开头,split命令在某些场景还是很有用的。

今天的内容就分享到这里了,大家晚安!

系列传送门如下:
Shell脚本基础从头开始(一)── 几个linux实操技巧
Shell脚本基础从头开始(二)── 输出重定向
Shell脚本基础从头开始(三)── linux的权限管理
Shell脚本基础从头开始(四)── 第一个shell脚本
Shell脚本基础从头开始(五)── shell的输入输出
Shell脚本基础从头开始(六) ── shell条件测试
Shell脚本基础从头开始(七)── shell的流程控制
Shell脚本基础从头开始(八)── shell的循环语句
Shell脚本基础从头开始(九)── shell的循环语句控制
Shell脚本基础从头开始(十)── shell的文本过滤
Shell脚本基础从头开始(十二)── 制作一个字符菜单
Shell脚本基础从头开始(完结篇)── 利用shell编写监控脚本以及shell操作数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不务正业的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值