This topic has been archived. It cannot be replied.
-
工作学习 / 专业知识杂谈 / 请教懂sed的大狭我想用sed在一个文件里删除几行:
原文:
LINE1
LINE2
LINE3
LINE4
LINE5
结果:
LINE2
LINE3
LINE5
小弟拜谢了!
-qulaopo(娶老婆);
2005-11-12
{123}
(#2604498@0)
-
sed里有照行删的命令啊, 这么简单都赖的看手册啊.
-etrex(家天下);
2005-11-12
(#2604721@0)
-
但只能删一行啊. sed '/LINE1/d' inputfile, 如何能一下子删几行哪? 手册上找不到啊.
-qulaopo(娶老婆);
2005-11-12
(#2604827@0)
-
SED允许你一个命令放多个SED命令啊, 比如 sed/line1d; line2d/input, 如果是连续的话sed/line1,line2d/
-etrex(家天下);
2005-11-13
(#2605591@0)
-
Under your direction I made it work. Here is the exact statement: sed '/LINE1/d;/LINE4/d' input
Thanks very mcuh indeed. :)
-qulaopo(娶老婆);
2005-11-13
(#2605669@0)
-
这个很明显是awk干的
-oasis(oasis);
2005-11-12
(#2604854@0)
-
oh?
-iwantcar(EnjoyStudying);
2005-11-14
(#2607403@0)
-
如果只是删除这么固定的几行。 用vi , ed都可以啊。
-jamestang163(James);
2005-11-13
(#2605712@0)
-
但事每次软件升级的话, 每次都要用手工改. 这个sed script 可以根据不同的客户要求, 被一个java程序叫, 这样可以省事不少.
-qulaopo(娶老婆);
2005-11-13
(#2605819@0)
-
vi sed 也可以 用教本来使用的 vi a.txt < vi.cmds
在vi.cmds里面就是
:4d
:1d
:wq
-jamestang163(James);
2005-11-13
(#2606400@0)
-
高, 实在是高! 又学一招.
-qulaopo(娶老婆);
2005-11-13
(#2606485@0)
-
杀鸡焉用牛刀, 用一个命令 egrep -v "LINE1|LINE4" FILE 不就可以了嘛.
-c_sea(雪山飞狐-悠然眺蓝山);
2005-11-14
(#2607068@0)
-
多谢大虾! 高手真多啊!
-qulaopo(娶老婆);
2005-11-14
(#2607425@0)
-
小心别把重复的行都删了
-henryan(Henry);
2005-11-14
(#2607502@0)
-
也来凑凑热闹, ed 和awk, 不用匹配而是用行号来删ed:
ed file.txt << EOF
2,3 d
3 d
w
q
EOF
awk:
awk ' BEGIN {RS="";FS="\n"}; { printf("%s\n%s\n%s\n",$2,$3,$5)}' file.txt > newfile.txt
-xczheng(图图);
2005-11-14
{155}
(#2608460@0)