LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1032|回复: 6

下列语句什么意思?(关于awk输出/入域分隔符问题)[已解决]

[复制链接]
发表于 2004-4-14 11:31:20 | 显示全部楼层 |阅读模式
gawk '/<a href=/ {for (i=1;i<=NF;i++) print $i}' pkuweb.htm>temp

gawk 'BEGIN {FS=\"\\\"\"} {print $2}' temp1>temp2


gawk 'BEBIN {OFS=\"/\"} {if ($1~/http/) print $1\n else\n print \"".$url."\",$1,\"<br>\"}' temp2
发表于 2004-4-14 12:05:03 | 显示全部楼层
如果可以的话,把pkuweb.htm贴出来看看。
发表于 2004-4-14 12:24:59 | 显示全部楼层

回复: 急问: 下列语句什么意思?

最初由 longdas 发表
gawk '/<a href=/ {for (i=1;i<=NF;i++) print $i}' pkuweb.htm>temp

gawk 'BEGIN {FS=\"\\\"\"} {print $2}' temp1>temp2


gawk 'BEBIN {OFS=\"/\"} {if ($1~/http/) print $1\n else\n print \"".$url."\",$1,\"<br>\"}' temp2

如果你不是很了解awk的话,,建议你先看看:
GAWK手册
发表于 2004-4-14 14:39:59 | 显示全部楼层
斑竹,其他的我都看懂了,就是第二行中的FS和第三行中的OFS到底是赋予了一个什么值呢,我有点不明白。

谢谢。
发表于 2004-4-14 14:57:03 | 显示全部楼层
哦,有点顿悟,他是用\转义吧。
所以第二行中的{FS=\"\\\"\"} ,FS就是\\\"
OFS就是/
不知道对不对。
但是这里有必要用转移字符\吗?
发表于 2004-4-14 14:59:13 | 显示全部楼层
最初由 litty 发表
斑竹,其他的我都看懂了,就是第二行中的FS和第三行中的OFS到底是赋予了一个什么值呢,我有点不明白。

谢谢。

FS=\"\\\"\":指定输入域分隔符为反斜线\,但是冒号是不需要用\来转义
OFS=\"/\":指定输出域分隔符为\,
如:
/home/javalee#echo "fff\eee"|awk -F"\\" '{print $1}' #指定FS为\
fff
/home/javalee#echo "fff\eee"|awk 'BEGIN{FS="\\"}{print $2}'#同上
eee
/home/javalee#echo "fff\\eee"|awk 'BEGIN{FS="\\\\"}{print $2}'#指定FS为\\
eee
/home/javalee#echo "fff\\eee;aaa"|awk 'BEGIN{FS="\\\\";OFS=" "}{print $2}'#指定FS为\\,OFS为空格
eee;aaa
发表于 2004-4-14 15:07:05 | 显示全部楼层
最初由 javalee 发表
FS=\"\\\"\":指定输入域分隔符为反斜线\,但是冒号是不需要用\来转义
OFS=\"/\":指定输出域分隔符为\,
如:
/home/javalee#echo "fff\eee"|awk -F"\\" '{print $1}' #指定FS为\
fff
/home/javalee#echo "fff\eee"|awk 'BEGIN{FS="\\"}{print $2}'#同上
eee
/home/javalee#echo "fff\\eee"|awk 'BEGIN{FS="\\\\"}{print $2}'#指定FS为\\
eee
/home/javalee#echo "fff\\eee;aaa"|awk 'BEGIN{FS="\\\\";OFS=" "}{print $2}'#指定FS为\\,OFS为空格
eee;aaa



斑竹的例子就是精辟,一点我就明白了。非常感谢

:thank :thank :thank :thank :thank :thank :thank :thank :thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表