关于Sed的使用问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
famingyuan
帖子: 18
注册时间: 2009-06-01 22:31

关于Sed的使用问题

#1

帖子 famingyuan » 2010-01-20 11:16

代码: 全选

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位置放置两个或以上的参数
我以前一直都是只能放一个参数。


谢谢各位。
头像
openware
帖子: 173
注册时间: 2009-02-22 14:15
联系:

Re: 关于Sed的使用问题

#2

帖子 openware » 2010-01-20 11:36

折腾了一会,也没结果。。。
感觉还是

代码: 全选

sort | uniq
不错。
Desire Freedom, Love Beauty, Keep Hacking。
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 关于Sed的使用问题

#3

帖子 c\nc » 2010-01-20 16:02

代码: 全选

sed '/Alien:/{d;q}' 文件
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 关于Sed的使用问题

#4

帖子 eexpress » 2010-01-20 16:19

你q,会导致后续工作没完成的。
你这例子没嘛通用性啊,判断条件也没通用性。2d就2d。如果要判断,还是脚本算了。
● 鸣学
头像
keky
帖子: 231
注册时间: 2007-12-20 15:08
来自: harbin
联系:

Re: 关于Sed的使用问题

#5

帖子 keky » 2010-01-21 11:44

openware 写了:折腾了一会,也没结果。。。
感觉还是

代码: 全选

sort | uniq
不错。
这个方便多了。。。
Keep trying...never say never. blog: H。U。C

代码: 全选

        .--.
       |o_o |
       |:_/ |           < Hello Girl >
      //   \ \             ------------
     (|     | )
    /'\_   _/`\
    \___)=(___/
famingyuan
帖子: 18
注册时间: 2009-06-01 22:31

Re: 关于Sed的使用问题

#6

帖子 famingyuan » 2010-01-25 10:32

谢谢各位好心人。多谢。
回复