Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2072255
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-08-06 14:55:46

[] [] [] [] []

圣骑士




CU编号: 736992
注册:2008-7-30
最后登录: 2009-08-05
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 18:22 

大意如上。
比如一个文件内容如下:
aaa
bbb
ccc
ddd
eee

现在我想要得到的结果为
1。只需要奇数行内容
aaa
ccc
eee

2。只需要偶数行内容
bbb
ddd



您对本贴的看法:
| | |

精灵王
Loa



CU编号: 1650889
注册:2009-5-16
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 18:52 

1,awk 'NR%2==1' file
2,awk 'NR%2==0' file



您对本贴的看法:

__________________________________

我觉得我还可以抢救一下...............
| | |
  帅哥
风云使者




CU编号: 690903
注册:2008-4-13
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-8-4 18:53 

回复 #1 clfsy 的帖子

[jesse@localhost shell-prog]$ cat urf
aaa
bbb
ccc
ddd
eee
[jesse@localhost shell-prog]$ sed -n 'p;n' urf
aaa
ccc
eee
[jesse@localhost shell-prog]$ sed -n 'n;p' urf
bbb
ddd



您对本贴的看法:
| | |
版主   帅哥
版主-法师



CU编号: 272747
注册:2005-5-26
最后登录: 2009-08-06
帖子:
精华:







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-8-4 18:57 



CODE:
sed -n '1~2p'
sed -n '2~2p'




您对本贴的看法:

__________________________________

二十几年来最大的遗憾,并不是少赚了的钱,也不是少交了友,而是永远没有机会为最钟爱的数学真正做点什么,或许这会是这一生的遗憾
做个合格的电子工程师,其实很难

| | |

精灵




CU编号: 791082
注册:2008-12-4
最后登录: 2009-08-06
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 19:55 

回复 #4 cjaizss 的帖子

版主能解释一下吗?
没见过这种用法!
谢谢!



您对本贴的看法:
| | |
  帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-08-06
帖子:
精华:0







来自:长春
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 20:01 

回复 #5 zhaobin81 的帖子

info sed

`FIRST~STEP'
     This GNU extension matches every STEPth line starting with line
     FIRST.  In particular, lines will be selected when there exists a
     non-negative N such that the current line-number equals FIRST + (N
     * STEP).  Thus, to select the odd-numbered lines, one would use
     `1~2'



您对本贴的看法:

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
| | |

风云使者
请不要亵渎圣灵



CU编号: 199500
注册:2004-11-15
最后登录: 2009-08-06
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 20:02 

回复 #4 cjaizss 的帖子

好招 学习:mrgreen:



您对本贴的看法:

__________________________________

努力中
| | |
(幽灵)
大天使
linux小学5年级



CU编号: 1284533
注册:2009-4-2
最后登录: 2009-08-05
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 20:54 

4楼的 更好



您对本贴的看法:

__________________________________

ThinkPad T42/T43/X32
经典小黑IBM最后原产纪念版本2K-3K
| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-06
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 21:28 

gnu extension



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.

[] [] [] [] []

风云使者
皇家救星



CU编号: 796256
注册:2008-12-20
最后登录: 2009-08-05
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 22:32 

awk '{print $0 > "file1"; getline; print $0 > "file2"; }' file


  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-06
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-4 23:16 

odd

CODE:
sed 'n;d' urfile

even

CODE:
sed '1d;n;d' urfile




您对本贴的看法:

  帅哥
大天使




荣誉会员  
CU编号: 51293
注册:2003-4-10
最后登录: 2009-08-05
帖子:
精华:







来自:西安
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:15 

回复 #1 clfsy 的帖子

用awk的可以简单写成:
awk 'NR%2'
awk '!(NR%2)'

再来个故意让人看不懂的
awk 'i=i?0:1'
awk '!(!=i?0:1)'

[ 本帖最后由 woodie 于 2009-8-5 10:40 编辑 ]



您对本贴的看法:
| | |
  帅哥 (暗夜星空)
老法王
休息休息



CU编号: 306408
注册:2005-8-25
最后登录: 2009-08-06
帖子:
精华:0







来自:广州<-->杭州
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:21 



QUOTE:
原帖由 woodie 于 2009-8-5 10:15 发表
用awk的可以简单写成:
awk 'NR%2'
awk '!(NR%2)'

再来个故意让人看不懂的
awk 'i=i?0:1'
awk '!(=i?0:1)'

看得懂咋办咧~~



您对本贴的看法:

__________________________________

有时候回答问题是信口开河......
因此不保证所有回复问题的答案的准确性.
如果正好是对的,那是碰到了死耗子..呵呵.
想着休息,不想做事!
| | |
  帅哥
大天使




荣誉会员  
CU编号: 51293
注册:2003-4-10
最后登录: 2009-08-05
帖子:
精华:







来自:西安
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:25 



QUOTE:
原帖由 liaosnet 于 2009-8-5 10:21 发表


看得懂咋办咧~~

看得懂的有受虐倾向,罚去面壁。



您对本贴的看法:
| | |

大天使



CU编号: 347943
注册:2005-12-11
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:37 

woodie 笔误了漏写了个i

偶数行是awk '!(i=i?0:1)'



您对本贴的看法:

__________________________________

shell新手&&awk新手
http://blog.chinaunix.net/u3/91453/


| | |
  帅哥
大天使




荣誉会员  
CU编号: 51293
注册:2003-4-10
最后登录: 2009-08-05
帖子:
精华:







来自:西安
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:40 



QUOTE:
原帖由 ywlscpl 于 2009-8-5 10:37 发表
woodie 笔误了漏写了个i

偶数行是awk '!(i=i?0:1)'

真的呢,多谢!


  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-06
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:42 

awk的另一种方法

CODE:
awk 'i=!i' urfile



CODE:
awk '!(i=!i)' urfile




您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| | |
  帅哥
大天使




荣誉会员  
CU编号: 51293
注册:2003-4-10
最后登录: 2009-08-05
帖子:
精华:







来自:西安
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:53 

回复 #20 blackold 的帖子

赞,这个比我的好!



您对本贴的看法:
| | |

大天使



CU编号: 347943
注册:2005-12-11
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 10:54 

回复 #20 blackold 的帖子

赞,相同思路,更简洁!



您对本贴的看法:

__________________________________

shell新手&&awk新手
http://blog.chinaunix.net/u3/91453/


| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-06
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 11:04 

回复 #21 woodie 的帖子

woodie,跟你学的。



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| | |

圣骑士




CU编号: 736992
注册:2008-7-30
最后登录: 2009-08-05
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 11:04 

多谢楼上各位坦诚相助。

受教了。。。



您对本贴的看法:
| | |
(Lemon)
大天使


CU奥运火炬传递手2008
CU编号: 615557
注册:2007-9-11
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 13:16 



QUOTE:
原帖由 blackold 于 2009-8-5 10:42 发表
awk的另一种方法awk 'i=!i' urfile
awk '!(i=!i)' urfile

我没明白



您对本贴的看法:
| | |
(Lemon)
大天使


CU奥运火炬传递手2008
CU编号: 615557
注册:2007-9-11
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 13:38 

原帖由 blackold 于 2009-8-5 10:42 发表
awk的另一种方法

awk 'i=!i' urfile
awk '!(i=!i)' urfile


哪个哥们解释一下,谢谢!



您对本贴的看法:
| | |

大天使



CU编号: 347943
注册:2005-12-11
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 13:48 

回复 #26 MYSQLER 的帖子

awk 'var=xx'  awk省略action的写法,默认action就是{print},但稍有特殊,其执行了var=xx的赋值操作,并且用xx作为pattern。

awk 'var=xx'应该说等价于awk 'xx{print}{var=xx}'

[ 本帖最后由 ywlscpl 于 2009-8-5 14:08 编辑 ]



您对本贴的看法:

__________________________________

shell新手&&awk新手
http://blog.chinaunix.net/u3/91453/


| | |
(Lemon)
大天使


CU奥运火炬传递手2008
CU编号: 615557
注册:2007-9-11
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 14:05 



QUOTE:
原帖由 ywlscpl 于 2009-8-5 13:48 发表
awk 'var=xx'  awk省略action的写法,默认action就是{print},但稍有特殊,其执行了var=xx的赋值操作,并且用xx作为pattern。

awk 'var=xx'应该说等价于awk '{var=xx}xx{print}'

感谢!是不是这样的,i=!i  一开始i为0既为假,!i为真就输出第一行,接下来第二行为假就不输出,依次类推!



您对本贴的看法:
| | |

大天使



CU编号: 347943
注册:2005-12-11
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 14:12 

回复 #28 MYSQLER 的帖子

修正一下
awk 'var=xx'应该说等价于awk 'xx{print}{var=xx}'

awk 'i=!i'  == >  awk '!i{print}{i=!i}
line 1: !0{print}{i=!0}==> {print;i=1}
line 2: !1{print}{i=!1}==> {i=0}
line 3: !0{print}{i=!0}==> {print;i=1}
.......



您对本贴的看法:

__________________________________

shell新手&&awk新手
http://blog.chinaunix.net/u3/91453/


| | |
  帅哥 (Jhon)
精灵使
CU头号愤青



CU编号: 623509
注册:2007-9-30
最后登录: 2009-08-06
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-5 14:56 

sed -n 'n;p'
sed -n 'p;n'
PS:此经好久不月了:mrgreen:



您对本贴的看法:

__________________________________


决定人生高度的是品德,影响生活质量的是才能。
| | |

» » »

天使




CU编号: 745494
注册:2008-8-15
最后登录: 2009-08-06
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-6 09:37 



QUOTE:
原帖由 cjaizss 于 2009-8-4 18:57 发表

sed -n '1~2p'
sed -n '2~2p'

学习



您对本贴的看法:

__________________________________

http://ubuntuer.cublog.cn欢迎做做
| | |

新手



CU编号: 666507
注册:2008-1-30
最后登录: 2009-08-06
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-6 09:56 

第一次见  sed -n '1~2p' 这种用法.很巧妙.


阅读(4542) | 评论(1) | 转发(0) |
0

上一篇: 提取大文件的某一列

下一篇:awk求和

给主人留下些什么吧!~~

syshack2010-01-27 16:47:11

4楼经典~~学习到了