免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3994 | 回复: 5
打印 上一主题 下一主题

awk的fs问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-12 18:42 |只看该作者 |倒序浏览
文件files

&L
12312
321321
321321
213132
1321
&L
1213
31
12
21
&L
211
321

原帖由 waker 于 2007-11-7 11:36 发表
awk 'BEGIN{RS="&L";FS="\n"}{$1=$1;print}' urfile

为啥用了个$1=$1?
还有如果把列变成行用awk 的分隔符方法 怎么实现?
还有      把行变成列用awk 的分隔符方法 怎么实现?


还有 FS= 赋值
[]这个符号 为啥可用?
awk -F"[|]+" .....
而且还是支持正则 还是固定格式啊?


在 shell 12篇中 米找到   FS  
呵呵 集中一个帖子问了 ~~~几个问题

论坛徽章:
0
2 [报告]
发表于 2007-11-12 18:49 |只看该作者
RS : record separator
FS : field separator
这些是awk的环境变量

论坛徽章:
0
3 [报告]
发表于 2007-11-12 19:20 |只看该作者
这算是awk的一个特性吧,如果没有域的改变,OFS ORS就不会起作用,为了骗一下awk,只好装个样子,这样才会得到想要的结果
-F"[|]+"  当然是支持正则

论坛徽章:
0
4 [报告]
发表于 2007-11-12 20:32 |只看该作者
$1=$1是gawk的补丁

因为gawk只有在读取某个字段的时候,才会对输入的信息进行分解

论坛徽章:
0
5 [报告]
发表于 2007-11-13 11:32 |只看该作者
多个分隔符
-F"[ %]+"
这个匹配的fs怎么解释?
空格和%中间的???
不太懂 看到这么个例子
burning:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda8             1.2G  131M  969M  12% /
tmpfs                  47M     0   47M   0% /lib/init/rw
udev                   10M   68K   10M   1% /dev
tmpfs                  47M     0   47M   0% /dev/shm
显示$5中的除去%的数字

df -h|awk -F'[ %]+' 'NR>1 {print $5}'
就ok
-F'[ %]+'
不太懂

论坛徽章:
0
6 [报告]
发表于 2008-01-03 17:47 |只看该作者
man awk
-F ERE
The token ERE represents an extended regular expression constant.

-F 后面是正则表达式把,[]里面的任何一个字符可以作为分隔符号,碰到任何一个字符都作为一个域对待。 而+代表,把多连续的域字符作为一个对待


  1. (1)
  2. #echo "adf::adf:f" | awk -F'[:]+' '{print $2}'
  3. #adf

  4. (2)
  5. #echo "adf::adf:f" | awk -F':' '{print $2}'
  6. #                           #输出空

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP