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

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-06-16 19:01:19

[] [] [] [] []

精灵王
精灵王?



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







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-6-16 15:58 
root@debian:~/test# cat b
1:2:3
4:5:6
root@debian:~/test# awk 'BEGIN{FS=":";OFS="--"}{print $0}' b
1:2:3
4:5:6
root@debian:~/test# awk 'BEGIN{FS=":";OFS="--"}{print $1,$2}' b
1--2
4--5


为何设置OFS后,print $0 会没有变化,而print $1 $2才会发生变化呢?

如果有$100的话,那不是要打很多个$ ??



您对本贴的看法:

__________________________________

正则 shell买什么书好?
来这里混混,2个月速成班,还不收费!

| | |
  帅哥 (青蛙)
风云使者




CU编号: 523798
注册:2007-1-29
最后登录: 2009-06-16
帖子:
精华:0







来自:深圳
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-6-16 16:11 
挺奇怪,帮顶。



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



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







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

[] [] [博客]


[]     顶部
发表于 2009-6-16 16:14 
回复 #1 xiaobaibbb 的帖子

awk 'BEGIN{FS=":";OFS="--"}$1=$1' 试下~



您对本贴的看法:

__________________________________

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

精灵王
精灵王?



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







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-6-16 16:17 


QUOTE:
原帖由 liaosnet 于 2009-6-16 16:14 发表
awk 'BEGIN{FS=":";OFS="--"}$1=$1' 试下~

谢谢你,能不能请教一下 $1=$1 是啥意思呢?



您对本贴的看法:

__________________________________

正则 shell买什么书好?
来这里混混,2个月速成班,还不收费!

| | |

骑士




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







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-6-16 16:29 
回复 #4 xiaobaibbb 的帖子

有誰能解釋一下awk中OFS/FS/RS/ORS這些內置變量在調用過程中是怎么處理記錄的。



您对本贴的看法:
| | |
  帅哥
风云使者




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







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-6-16 16:34 


QUOTE:
原帖由 xiaobaibbb 于 2009-6-16 16:17 发表

谢谢你,能不能请教一下 $1=$1 是啥意思呢?

小白,这个黑哥讲过,他说$1=$1可以让原来的记录按照你重新设置的变量FS和OFS重新组合。



您对本贴的看法:
| | |

精灵王
精灵王?



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







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-6-16 16:44 


QUOTE:
原帖由 greendays 于 2009-6-16 16:34 发表

小白,这个黑哥讲过,他说$1=$1可以让原来的记录按照你重新设置的变量FS和OFS重新组合。

哦好的,谢谢啦
这次记住了!



您对本贴的看法:

__________________________________

正则 shell买什么书好?
来这里混混,2个月速成班,还不收费!

| | |
版主   帅哥 (孩儿他爹㊞)
广告杀手-老法王



CU编号: 17255
注册:2002-8-26
最后登录: 2009-06-16
帖子:
精华:







来自:中国南京
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-6-16 17:04 
According to the POSIX standard, awk is supposed to behave as if each record is split into fields at the time it is read. In particular, this means that if you change the value of FS after a record is read, the value of the fields (i.e., how they were split) should reflect the old value of FS, not the new one.

However, many implementations of awk do not work this way. Instead, they defer splitting the fields until a field is actually referenced. The fields are split using the current value of FS! (d.c.) This behavior can be difficult to diagnose. The following example illustrates the difference between the two methods.



您对本贴的看法:

__________________________________

=GNU/linux=
GNU {bash 2.05b, grep 2.5, Awk 3.1.3, sed 4.0.8}

导师说:站起来吧
众人说:那么辛苦那么艰苦到底值不值?

设计师说:富起来吧
众人说:拼啦

| | |
  帅哥 (猴子)
侠客
小魔法师



CU编号: 802693
注册:2009-1-12
最后登录: 2009-06-16
帖子:
精华:0







来自:上海
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-6-16 17:19 
在bash··ksh93··tcsh shell中,$0是数组变量中的默认第一个元素。。。这种东西就好比你在问大象为什么叫大象一样!!!


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