sed系列文章
- linux常用命令(9):sed命令(编辑/替换/删除文本)
- linux sed命令删除一行/多行_sed删除第一行/linux删除文件某一行
- linux sed批量修改替换文件中的内容/sed特殊字符
本文主要讲解如何删除txt文件中的某一行内容,sed命令更多详细内容参考《linux常用命令(9):sed命令(编辑/替换/删除文本)》
一、sed删除
编辑命令 | 含义 |
---|---|
1d | 删除第1行的内容 |
1,5d | 删除1行到5行的内容 |
2,+5d | 删除第2行以及往下的5行的内容 |
/pattern1/d | 删除每行中匹配到pattern1的行内容 |
/pattern1/,/pattern2/d | 删除匹配到pattern1的行直到匹配到pattern2的所有行内容 |
/pattern1/,10d | 删除匹配到pattern1的行到10行的所有行内容 |
10,/pattern1/d | 删除第10行直到匹配到pattern1的所有内容 |
1.1、sed删除某一行内容/删除最后一行
sed -i '1d' filename 删除文件第一行
sed -i '2d' filename 删除第二行
sed -i 'nd' filename 删除第n行/n需要是实际数字
sed -i '$d' filename 删除最后一行
执行效果:
若指定的行不存在,则不删除
1.2、sed删除多行
sed -i '1,3d' filename 删除1-3行
sed -i '3,$d' filename 删除第3行到最后一行
执行效果:
1.3、删除所有空白行
# 删除所有空白行
sed -i '/^$/d' filename
1.4、删除匹配的行
sed -i '/某字符串/d' filename
命令解释:
- /某字符串/ 匹配//中间放的字符串的行,加^表示匹配行首,如:
/^+/ 匹配行首字符串为“+”的行
[root@centos test]# cat aa.txt
| 1 | tom | 男 |
| 2 | jack| 女 |
| 3 | cary| 男 |
| 4 | cody| 女 |
[root@centos test]# sed '/男/d' aa.txt -- 删除有男的行
| 2 | jack| 女 |
| 4 | cody| 女 |
[root@centos test]#
1.5、删除以a开头的行
删除以a开头的行
sed -i '/^a.*/d' tmp.txt
1.6、反向删除
# 删除不包含green的行
sed -i '/green/!d' test.txt
1.7、删除空格
删除行首空格 sed 's/^[ \t]*//g'
删除行末空格 sed 's/[ \t]*$//g'
删除所有的空格 sed 's/[[:space:]]//g'
其中,sed 's/^[ ]*//g' 表示使用空字符匹配行首为空格的字符串;
依次拆解释义:
字符 's' 表示替换;
字符 '/' 表示作为分隔符;
字符 '^' 表示开头;
字符 '$' 表示结尾;
字符 '[ ]' 表示匹配指定字符范围内的任意单个字符,[ ]包含一个空格;
字符 '*' 作为通配符,匹配0个或任意多个; 字符 'g’ 表示全部匹配;
二、扩展
2.1、-i命令
-i:直接修改文档读取的内容,不在屏幕上输出
文章来源:https://www.toymoban.com/news/detail-812334.html
sed 把当前正在处理的行保存在一个临时缓存区中,这个缓存区称为模式空间或临时缓冲。sed默认不会直接修改文件中的值,加-i后会直接修改文件中的内容。
文章来源地址https://www.toymoban.com/news/detail-812334.html
整理本文时发现一些其他文章值得借鉴的: https://blog.csdn.net/bandaoyu/article/details/120047612
到了这里,关于linux sed命令删除一行/多行_sed删除第一行/linux删除文件某一行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!