如何使用sed删除能匹配到多个字段的那几行

如题所述

为了叙述方便,假设你要匹配的字段是 panda

我有一个思路:

    对所有存在 panda 的行,只进行一次替换(sed 中不要用 g 命令)——将panda替换为文本中不存在的特殊字符串比如@@@@

    经过第一步,剩下的包含panda的行就是你应当删除的行。

    删除后,再把@@@@还原为panda即可。

如果不太清楚,请看下图——我的实验:

test.txt 文件内容为:

panda panda panda
duck panda duck duck
goose goose duck panda panda
bear bear duck duck panda

温馨提示:内容为网友见解,仅供参考
无其他回答

如何使用sed删除能匹配到多个字段的那几行
为了叙述方便,假设你要匹配的字段是 panda 我有一个思路:对所有存在 panda 的行,只进行一次替换(sed 中不要用 g 命令)——将panda替换为文本中不存在的特殊字符串比如 经过第一步,剩下的包含panda的行就是你应当删除的行。删除后,再把@@@还原为panda即可。如果不太清楚,请看下图——我的...

用SED去除所有的字母和空格
这行代码的意思是:匹配含有ip地址的行,然后用substr 提取出来,打印到文件。推荐这个,这个比较通用!第二种:awk '{print $4}' ip.txt > newip.txt 鉴于你的ip地址格式是 这几个字段之间用空格分割的,所以可以之间用awk自己内部自定义的空格分割,直接打印对应的第四个字段就可以,比较简便,...

2021-11-26 sed 删除行,提取特定字符前内容
删除第一行 sed -i '1d' filename 范围删除,删除1-3行 sed -i '1,3d' filename 删除第n行 sed -i 'nd' filename 删除最后一行 sed -i '$d' filename 提取等号前面字段 echo "name=usr" | cut -d '=' -f 1

sed 取特定行 到末尾行
1、通常用sed关闭SELINUXsed -i 's@SELINUX=enforcing@SELINUX=disabled@' \/etc\/sysconfig\/selinux 将enforcing替换成disabled。2、sed -i '10d' \/etc\/sysconfig\/selinux删除 \/etc\/sysconfig\/selinux第10行。3、sed -i '11a hello world' \/etc\/sysconfig\/selinux 在第11行后增加内容hello world。

shell中 sed或awk 通过分隔符删除相应字段
如果要保存,只需把输出重定向到一个文件就行了 awk -F"|" '{print $1"|"$2"|"$4"|"}' yourfile >newfile 或者使用sed sed 's\/|[^|]*\\(|[^|]*|$\\)\/\\1\/' yourfile如果想直接修改原文件:sed -i 's\/|[^|]*\\(|[^|]*|$\\)\/\\1\/' yourfile ...

sed&awk基本使用方法
#而,如果只要删除第 2 行,可以使用 nl \/etc\/passwd | sed '2d' 来达成,# 至于第 3 到最后一行,则是 nl \/etc\/passwd | sed '3,$d' 的啦!范例二:承上题,在第二行后(亦即是加在第三行)加上『drink tea?』字样![root@linux ~]# nl \/etc\/passwd |sed '2a drink tea'1 root:x:0:0:root...

sed 怎样删除两个字符串之间的指定字符
[a-z]\\{10\\}只匹配10个 a-z字符的字符串 s\/.\\{5\\}$\/\/ 删除每行的最后5个字符 \\(...\\),n是1到9的数字,表示存储用的寄存器,用\\n来引 用存在寄存器中的内容 ^\\(.\\)\\1匹配行首的第一个字符,并将该字符存到1号寄存器中,然后匹配1号寄存器中的内容,这由\\1的描述。该正则 表达式的...

linux命令怎么显示文件某一行或几行内容
使用sed命令;具体查看使用规则:sed --help;显示文件X行命令:sed -n 'xp' filename 显示文件X行到Y行的内容:sed -n 'x,yp' filename 相关显示命令还有tail,cat.awk,head等,可以常看LInux命令大全,或者man命令|help命令查看相关用法。

利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容
1、在linux目录\/root下建立一个txt文件,内容如下,使用|竖线分割,作为我们的实验数据样本。2、sed用法、sed-n'xp'data.txt;显示文件X行数据,获取第18行数据,即为sed-n'18p'data.txt。3、sed-n'开始行,结束行p'data.txt;显示文件X行到Y行的内容:命令:sed-n'10,18p'data.txt。4、...

总结Linux中用于文本处理的awk、sed、grep命令用法
.\/\/' file 删除每一行的头三个字符。sed 's#moding#moden#g' file将moding替换为moden,s后面的#代表搜索串和替换串之间的分界符。sed -n '\/101\/,\/105\/p' file 显示从101的匹配行到105的匹配行。如果只找到101的匹配行,则从101的匹配行到文件末。sed -n '2,\/999\/p' file 显示从第2...

相似回答