BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


1从何来?---[awk -F/FS= 区别 语法标准化;命令参数后置的一些讨论]
首页 » 论坛 » Shell »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
flowingtree   帅哥
光明使者



UID:175063
注册:2004-8-4
最后登录: 2008-10-10
帖子:743
精华:0

可用积分:214 (白手起家)
信誉积分:105
专家积分:20 (本版:0)
空间积分:802
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


1楼 发表于 2008-7-23 15:21 
[root@du tmp]# ls dos* -l
-rw-r--r-- 1 apache apache 5 Jul 21 22:51 dos-117.25.130.171
-rw-r--r-- 1 apache apache 6 Jul 23 14:41 dos-117.25.131.151
-rw-r--r-- 1 apache apache 6 Jul 22 18:38 dos-121.204.101.88
-rw-r--r-- 1 apache apache 6 Jul 21 14:53 dos-122.102.8.247
-rw-r--r-- 1 apache apache 5 Jul 22 02:09 dos-122.224.184.254
-rw-r--r-- 1 apache apache 6 Jul 21 15:13 dos-123.4.112.18
-rw-r--r-- 1 apache apache 5 Jul 23 08:42 dos-125.110.200.71
-rw-r--r-- 1 apache apache 6 Jul 22 21:05 dos-125.77.143.2
-rw-r--r-- 1 apache apache 5 Jul 23 00:51 dos-127.0.0.1
-rw-r--r-- 1 apache apache 6 Jul 21 16:57 dos-203.171.226.86
-rw-r--r-- 1 apache apache 6 Jul 22 20:24 dos-210.51.57.166
-rw-r--r-- 1 apache apache 5 Jul 22 06:54 dos-210.78.51.78
-rw-r--r-- 1 apache apache 6 Jul 21 15:51 dos-210.78.52.43
-rw-r--r-- 1 apache apache 6 Jul 21 14:30 dos-218.3.53.133
-rw-r--r-- 1 apache apache 6 Jul 21 17:44 dos-218.6.13.164
-rw-r--r-- 1 apache apache 6 Jul 22 19:34 dos-218.6.15.173
-rw-r--r-- 1 apache apache 6 Jul 21 19:25 dos-218.6.15.35
-rw-r--r-- 1 apache apache 6 Jul 22 11:39 dos-218.6.15.81
-rw-r--r-- 1 apache apache 6 Jul 21 16:21 dos-218.93.205.37
-rw-r--r-- 1 apache apache 6 Jul 21 15:55 dos-218.95.37.161
-rw-r--r-- 1 apache apache 6 Jul 23 09:26 dos-219.232.236.42
-rw-r--r-- 1 apache apache 6 Jul 23 09:55 dos-221.208.168.190
-rw-r--r-- 1 apache apache 6 Jul 21 15:40 dos-222.186.12.206
-rw-r--r-- 1 apache apache 6 Jul 22 14:27 dos-222.243.158.87
-rw-r--r-- 1 apache apache 6 Jul 21 17:12 dos-222.73.218.118
-rw-r--r-- 1 apache apache 6 Jul 21 17:38 dos-222.73.218.39
-rw-r--r-- 1 apache apache 6 Jul 21 20:18 dos-222.73.219.179
-rw-r--r-- 1 apache apache 6 Jul 23 11:46 dos-222.76.213.72
-rw-r--r-- 1 apache apache 6 Jul 21 21:40 dos-58.216.238.202
-rw-r--r-- 1 apache apache 6 Jul 21 14:37 dos-58.222.16.27
-rw-r--r-- 1 apache apache 6 Jul 22 11:31 dos-59.120.224.62
-rw-r--r-- 1 apache apache 6 Jul 22 20:04 dos-59.59.48.38
-rw-r--r-- 1 apache apache 6 Jul 23 14:01 dos-60.190.222.200
-rw-r--r-- 1 apache apache 6 Jul 22 14:42 dos-60.248.43.4
-rw-r--r-- 1 apache apache 6 Jul 22 18:29 dos-61.147.107.15
-rw-r--r-- 1 apache apache 6 Jul 23 12:54 dos-61.163.210.131
-rw-r--r-- 1 apache apache 6 Jul 21 17:49 dos-61.174.62.79

[root@du tmp]# ls dos* -l|awk  'FS="dos-" {print $2}'
1
117.25.131.151
121.204.101.88
122.102.8.247
122.224.184.254
123.4.112.18
125.110.200.71
125.77.143.2
127.0.0.1
203.171.226.86
210.51.57.166
210.78.51.78
210.78.52.43
218.3.53.133
218.6.13.164
218.6.15.173
218.6.15.35
218.6.15.81
218.93.205.37
218.95.37.161
219.232.236.42
221.208.168.190
222.186.12.206
222.243.158.87
222.73.218.118
222.73.218.39
222.73.219.179
222.76.213.72
58.216.238.202
58.222.16.27
59.120.224.62
59.59.48.38
60.190.222.200
60.248.43.4
61.147.107.15
61.163.210.131
61.174.62.79
第一行是1

[ 本帖最后由 flowingtree 于 2008-7-26 09:13 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

益友居


积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
ly5066113   帅哥 (Tim)
精灵使


CU奥运火炬传递手2008
UID:465018
注册:2006-9-13
最后登录: 2008-10-10
帖子:3260
精华:0

可用积分:1084 (家境小康)
信誉积分:120
专家积分:272 (本版:221)
空间积分:0
推广积分:55

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

[个人空间] [短信] [博客]


2楼 发表于 2008-7-23 15:23 
ls dos* -l | awk -F"dos-" '{print $2}'



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
li2002
精灵使



UID:6382
注册:2002-4-5
最后登录: 2008-10-10
帖子:3702
精华:10

可用积分:2711 (小富即安)
信誉积分:100
专家积分:21 (本版:20)
空间积分:825
推广积分:0

来自:江苏
状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2008-7-23 15:29 
awk  'FS="dos-" {print $2}'
这种写法处理第一行会按默认FS处理$1,$2,所以出现了1
应该写成这样
awk  'BEGIN{FS="dos-"} {print $2}'



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
springwind426   帅哥 (春之风)
大天使




UID:110253
注册:2003-11-7
最后登录: 2008-10-10
帖子:1786
精华:1

可用积分:2034 (小富即安)
信誉积分:100
专家积分:119 (本版:18)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


4楼 发表于 2008-7-23 15:32 
'FS="dos-"{print $2}'
awk执行的时候,先判断FS是否为真,如果为真,就执行{print $2},然后,将FS赋值为"dos-"

这个地方我的解释有误,应该是先把FS赋值为dos-,然后判断FS是否为真,对于awk而言,空字符串和0都是假,其他为真

因此,对于第一行,FS是缺省值,当然$2就是1了,在处理完第一行的时候,FS已经变为"dos-"了,那么对其后的行,$2就是IP了

注:gawk在读取内容之后设置FS,对本行内容的分解没有影响

合理的写法是

ls * -l | awk  'BEGIN{FS="dos-"}{print $2}'

[ 本帖最后由 springwind426 于 2008-7-26 12:13 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

Debian(lenny)
GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
GNU Awk 3.1.5
GNU sed version 4.1.5
GNU grep 2.5.3
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
merlin852   帅哥
精灵王




UID:551382
注册:2007-4-13
最后登录: 2008-10-10
帖子:338
精华:0

可用积分:1576 (家境小康)
信誉积分:100
专家积分:10 (本版:10)
空间积分:804
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


5楼 发表于 2008-7-23 15:33 
学习了....



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
flowingtree   帅哥
光明使者



UID:175063
注册:2004-8-4
最后登录: 2008-10-10
帖子:743
精华:0

可用积分:214 (白手起家)
信誉积分:105
专家积分:20 (本版:0)
空间积分:802
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


6楼 发表于 2008-7-23 15:36 
谢谢各位



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

益友居


积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
timdcn
风云使者




UID:558297
注册:2007-4-30
最后登录: 2008-10-10
帖子:613
精华:0

可用积分:680 (稍有积蓄)
信誉积分:110
专家积分:0 (本版:0)
空间积分:0
推广积分:0

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

[个人空间] [短信] [博客]


7楼 发表于 2008-7-23 15:38 
学习了



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
flowingtree   帅哥
光明使者



UID:175063
注册:2004-8-4
最后登录: 2008-10-10
帖子:743
精华:0

可用积分:214 (白手起家)
信誉积分:105
专家积分:20 (本版:0)
空间积分:802
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


8楼 发表于 2008-7-23 15:50 


QUOTE:
原帖由 springwind426 于 2008-7-23 15:32 发表
'FS="dos-"{print $2}'
awk执行的时候,先判断FS是否为真,如果为真,就执行{print $2},然后,将FS赋值为"dos-"

因此,对于第一行,FS是缺省值,当然$2就是1了,在处理完第一行的时候,FS已经变为"dos-"了 ...

这种回答方式最令人钦佩!



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

益友居


积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
shaneqi
精灵王



UID:389664
注册:2006-3-20
最后登录: 2008-10-10
帖子:297
精华:0

可用积分:1225 (家境小康)
信誉积分:100
专家积分:0 (本版:0)
空间积分:802
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


9楼 发表于 2008-7-23 16:50 
学习了,看来这是-F和FS的区别之一阿。



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
无声无息   帅哥 (无声无息)
天使



UID:550054
注册:2007-4-10
最后登录: 2008-10-10
帖子:1453
精华:0

可用积分:3014 (小富即安)
信誉积分:100
专家积分:0 (本版:0)
空间积分:83
推广积分:1

来自:广州
状态:...离线...

[个人空间] [短信] [博客]


10楼 发表于 2008-7-23 17:03 


QUOTE:
原帖由 springwind426 于 2008-7-23 15:32 发表
'FS="dos-"{print $2}'
awk执行的时候,先判断FS是否为真,如果为真,就执行{print $2},然后,将FS赋值为"dos-"

因此,对于第一行,FS是缺省值,当然$2就是1了,在处理完第一行的时候,FS已经变为"dos-"了 ...

这个回答显示了功力和严谨

佩服



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

listenpie蜂蜜小店,来自新西兰的天然产品。


debian 4.0 GNU/Linux 2.6.9
bash-3.1.17 Awk-3.1.3 sed-4.1.5 grep-2.5.1
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?

首页 » 论坛 » Shell »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 1.260386 second(s), 4 queries , Gzip enabled