发新话题
打印

如何删去重复行并保持顺序不变?

引用:
原帖由 dearvoid 于 2007-8-17 22:46 发表

此‘哎呀’何意?
就是“不知道该补充什么 了”       

TOP

原来语句可以更精简的:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[4189 0]
; cat file
I'm a student.
You are a teacher.
He is a farmer.
He is a farmer.
He is a farmer.
We are workers.
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[4189 0]
; awk '!seen[$0]++ { print $0; }' file
I'm a student.
You are a teacher.
He is a farmer.
We are workers.
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[4189 0]
; bye
[ 本帖最后由 dearvoid 于 2007-8-24 20:34 编辑 ]      
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP


awk的隐式if形式      
面包会有的 女人也会有的
_______________________

TOP

历时一个 hour, sed 版新鲜出炉 不晓得有没有 bug, 欢迎试用
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0]
; cat file
I'm a student.
You are a teacher.
He is a farmer.
He is a farmer.
He is a farmer.
We are workers.
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0]
; cat file.sed
#!/usr/bin/sed -nf

:loop
H
x
/\n\([^\n]*\)\n\([^\n]*\n\)*\1\($\|\n\)/ ! {
    x
    p
    bnext
}
s/\n[^\n]*$//
x
:next
$q
n
bloop
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0]
; sed -nf file.sed file
I'm a student.
You are a teacher.
He is a farmer.
We are workers.
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0]
; bye
      
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

不要用大文件测试哈, 效率比较低       
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

够bt,我一点都看不懂,如果是我,我决定使用Perl      

TOP

引用:
原帖由 zhuomingliang 于 2007-8-23 17:41 发表
够bt,我一点都看不懂,如果是我,我决定使用Perl
不实用哈, 俺只是想秀一下俺的 sed 水平       
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

亮兄和我想法一样, 呵      
面包会有的 女人也会有的
_______________________

TOP

看不懂!看不懂!看不懂!      
前进、前进、再前进

TOP

偶的解决方法,初学,欢迎拍砖~
原先发上来的有bug, 又改了一下,花了一个多小时鼓捣这么点东东出来,看来还是不会灵活运用
复制内容到剪贴板
代码:
sed -n '$!N;
/^\(.*\)\n\1$/b a
P
:a
D' youfile
[ 本帖最后由 ArchieYao 于 2007-12-10 00:12 编辑 ]      
平生修得随缘性,粗茶淡饭也逍遥

TOP

发新话题