分页: 1 / 1

关于Sed的使用问题

发表于 : 2010-01-20 11:16
famingyuan

代码: 全选

famingyuan@famingyuan-desktop:~/sorttest$ cat video.txt 
Boys in Company C:HK:192:2192
Alien:HK:119:1982
The Hill:KL:63:2972
Aliens:HK:532:4892
Star Wars:HK:301:4102
A Few Good Men:KL:445:5851
Toy Story:HK:239:3972
Alien:HK:13:1982[/code

其中第二行和最后一行是相同的,想使用 sed命令来删除 第二行。虽然  sed '2d' video.txt  完全方便快捷。 

但是我想使用匹配的方式来实现。
[code]
famingyuan@famingyuan-desktop:~/sorttest$ sed '/Alien/d' video.txt 
Boys in Company C:HK:192:2192
The Hill:KL:63:2972
Star Wars:HK:301:4102
A Few Good Men:KL:445:5851
Toy Story:HK:239:3972
但是这却删除了所有匹配的行。

想想使用 sed '/Alien/d q' video.txt

代码: 全选

famingyuan@famingyuan-desktop:~/sorttest$ sed '/Alien/d q' video.txt 
sed:-e 表达式 #1,字符 10:命令后含有多余的字符
但还是出错,我看手册上对 q 的解释是: 第一个模式匹配完成后推出或立即推出

希望各位能解答小弟心中的疑惑:
1. 如何才能使用 sed 并采用匹配模式的方式 来删除 遇到的第一行。
2. 如何在 sed '/Alien/command ' video.txt 中的 command位置放置两个或以上的参数
我以前一直都是只能放一个参数。


谢谢各位。

Re: 关于Sed的使用问题

发表于 : 2010-01-20 11:36
openware
折腾了一会,也没结果。。。
感觉还是

代码: 全选

sort | uniq
不错。

Re: 关于Sed的使用问题

发表于 : 2010-01-20 16:02
c\nc

代码: 全选

sed '/Alien:/{d;q}' 文件

Re: 关于Sed的使用问题

发表于 : 2010-01-20 16:19
eexpress
你q,会导致后续工作没完成的。
你这例子没嘛通用性啊,判断条件也没通用性。2d就2d。如果要判断,还是脚本算了。

Re: 关于Sed的使用问题

发表于 : 2010-01-21 11:44
keky
openware 写了:折腾了一会,也没结果。。。
感觉还是

代码: 全选

sort | uniq
不错。
这个方便多了。。。

Re: 关于Sed的使用问题

发表于 : 2010-01-25 10:32
famingyuan
谢谢各位好心人。多谢。