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

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-04-20 11:44:42

[root@Greendays lianshou]# cat oo
!
123           klksaksdkfl   3 kkl;kl;  2  ;kd;lfkl;kd;fk
!
234             hdfdlf df df df ab
zzzzzzzzzzz
aaaaaaaa
!
777         hhhhhhhhhh 3 kkkkkkkkk  4 jjjjjjjjjjjjj
!
888        dfldklfkdlkflk
dfdfdfdf
!
[root@Greendays lianshou]# awk 'BEGIN{RS="!"}$1=$1' oo
123 klksaksdkfl 3 kkl;kl; 2 ;kd;lfkl;kd;fk
234 hdfdlf df df df ab zzzzzzzzzzz aaaaaaaa
777 hhhhhhhhhh 3 kkkkkkkkk 4 jjjjjjjjjjjjj
888 dfldklfkdlkflk dfdfdfdf
[root@Greendays lianshou]#

其中:$1=$1  看不懂哦 。

[ 本帖最后由 greendays 于 2009-4-20 09:26 编辑 ]



您对本贴的看法:
| |
  帅哥 (HH)
光明使者
学习一点,进步一点



CU编号: 546387
注册:2007-4-2
最后登录: 2009-04-20
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 09:29 
通过运算,使ORS生效



您对本贴的看法:

__________________________________

Linux centos 2.6.18-92.el5
| |
  帅哥 (黑哥)
精灵使



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







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 09:30 
回复 #1 greendays 的帖子

$1=$1就是赋值表达式。



您对本贴的看法:

__________________________________

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


| |
  帅哥
精灵王




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-20 09:34 
回复 #2 HH106 的帖子

机器猫兄,讲详细点,好吧 ?



您对本贴的看法:
| |
  帅哥
精灵王




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-20 09:36 
回复 #3 blackold 的帖子

每一条记录有好几个域,只把第一个域赋值给$1,其它的域怎么办?

[ 本帖最后由 greendays 于 2009-4-20 09:43 编辑 ]



您对本贴的看法:
| |
(我在学习,我要进步)
精灵使
打破水锅问到底。




CU编号: 713644
注册:2008-6-3
最后登录: 2009-04-20
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 09:37 
回复 #4 greendays 的帖子

你要了解默认输入与输出分隔符。



您对本贴的看法:

__________________________________

有时候回答问题是信口开河......
因此不保证所有回复问题的答案的准确性.
如果正好是对的,那是碰到了死耗子..呵呵.

| |
  帅哥 (黑哥)
精灵使



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







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 09:40 
回复 #5 greendays 的帖子

其它的域不变啊。其实,所有域都不变($1=$1)。

在这里,它的作用是重建$0,同时作为一个pattern.



您对本贴的看法:

__________________________________

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


| |
  帅哥
精灵王




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-20 09:40 
回复 #6 我是DBA 的帖子

默认的输入和输出分割符是\n



您对本贴的看法:
| |
  帅哥
精灵王




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-20 09:48 
回复 #7 blackold 的帖子

谢谢黑哥清晰的讲解!我明白了。



您对本贴的看法:
| |
  帅哥 (donkey)
圣骑士
快意恩仇



CU编号: 633016
注册:2007-10-25
最后登录: 2009-04-20
帖子:
精华:0







来自:neu
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 09:50 
不理解..为什么$1=$1会重建$0,我试了下,$2=$2也行..

[ 本帖最后由 goter 于 2009-4-20 09:52 编辑 ]



您对本贴的看法:

__________________________________

go on
| |
回复 #10 goter 的帖子

$1000=$1000  这个你试一试



您对本贴的看法:
| |
  帅哥 (donkey)
圣骑士
快意恩仇



CU编号: 633016
注册:2007-10-25
最后登录: 2009-04-20
帖子:
精华:0







来自:neu
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 09:58 
1000就不行了,因为NF没到1000,但为什么$1=$1会重建$0呢?



您对本贴的看法:

__________________________________

go on
| |
  帅哥 (黑哥)
精灵使



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







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 10:00 
回复 #10 goter 的帖子

只要对字段(无论该字段是否存在)赋值,awk都会重建$0,至少gawk是这样。

里面涉及到几点基础知识。



您对本贴的看法:

__________________________________

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


| |
  帅哥
精灵王




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-20 10:12 
回复 #13 blackold 的帖子

黑哥 按照您这么说 $1000=$1000  应该可以的哦



您对本贴的看法:
| |
  帅哥
精灵王




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-20 10:13 
字段$1000不存在 ,对它赋值 $1000=$1000    ,重组$0.



您对本贴的看法:
| |
  帅哥 (黑哥)
精灵使



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







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 10:16 
回复 #14 greendays 的帖子

$1000=$1000也会引起重建$0,但$1000为空,作为pattern就是false,无输出。

试试这个就清楚了:
awk '{$1000=$1000;print $0}' RS='!' urfile



您对本贴的看法:

__________________________________

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


| |
  帅哥
精灵王




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-20 10:23 
回复 #16 blackold 的帖子

非常明白!谢谢黑哥!



您对本贴的看法:
| |
  帅哥 (黑哥)
精灵使



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







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 10:26 
回复 #17 greendays 的帖子

只有自己“用心”了才会真正明白。



您对本贴的看法:

__________________________________

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


| |
  帅哥 (donkey)
圣骑士
快意恩仇



CU编号: 633016
注册:2007-10-25
最后登录: 2009-04-20
帖子:
精华:0







来自:neu
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 10:52 
谢谢黑哥,再去看基础去:) :)


阅读(1138) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~