linux至 sed命令实际工作需求整理【linux系统中删除一个文件种包含指定字符串的所有行、空行】

一、需求:

我如果有几百个文件,需要将含有指定字符串的行删除,我如何做呐?

最后找的一个sed命令。可以很方便的解决我的问题。

我之前整理过一次linux常用命令的文章,这个算是一个补充吧。

由于,我每次更改原来的文章,再保存,再发布就审核不通过了,不知道是不是CSDN的问题还是咋回事???

所以以后文章我只能新写一个,老的文章粘贴到前面吧。
整理一些linux命令必须熟练掌握常的命令(复习+扩展学习Linux命令)

二、实战:

菜鸟教程学习参考:

sed命令常用到的两个选项:

-i : 直接在文件上编辑、修改 (edit files in place)
-e[默认选项]:只在命令行输出,而文件不改变 【可以用来测试】

下面我会以-i为例,应为实际我要修改原文件。

1、sed命令删除特定行号

删除第N行
sed -i ‘Nd’ filename

比如:删除第五行

# 修改原文件
sed -i '5d' test.txt
# 控制台输出,测试使用
sed -e '5d' test.txt

源文件:
在这里插入图片描述

为了方便演示,我这里使用-e来控制台显示,如果实际需要修改文件,改为-i即可。
在这里插入图片描述

2、删除第N~M行

sed -i ‘N,Md’ filename
file的[N,M]行都被删除

还是以上面的测试数据来测试:

# 修改原文件
sed -i '3,5d' test.txt
# 控制台输出,测试使用
sed -e '3,5d' test.txt

可以查看出,3-5行数据删除了

在这里插入图片描述

3、删除最后一行

sed -i ‘$d’ filename

上面的测试文件最后有空行,我给删除了,不然测试控制台输出看不出来。

在这里插入图片描述

4、删除包含"xxx"的行

sed -i ‘/xxx/d’ filename

其实这个就是我想找的命令,可以将我的文件不管多少号,将含有的字符串的行删除。

sed -i '/mkdir/d' test.txt
sed -e '/mkdir/d' test.txt

在这里插入图片描述

5、删除空行

将一个文件的所有空行删除
sed -e '/^$/d' test.txt 

在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值