免费注册 查看新帖 |

Chinaunix

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

分隔字段问题(急!!!!) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-22 17:18 |只看该作者 |倒序浏览
把a.dat文件
20030103232551|20030103232946
20030113232838|20020112232952
20030123232838|20030122232952

分割成 20030103|232551|20030103|232946
20030113|232838|20020112|232952
20030123|232838|20030122|232952
-----------------------------------

程序:
awk -F'|' '{
OFS="|"
print
substr($1,1,, substr($1,9,14),
substr($2,1,, substr($2,9,14)
}' a.dat

输出:
awk: syntax error near line 4
awk: illegal statement near line 4
awk: syntax error near line 5
awk: illegal statement near line 5

论坛徽章:
0
2 [报告]
发表于 2003-01-22 17:22 |只看该作者

分隔字段问题(急!!!!)

是不是
OFS="|" ;
要加分号!?

论坛徽章:
0
3 [报告]
发表于 2003-01-22 17:25 |只看该作者

分隔字段问题(急!!!!)

lbas@mmjf1>more b.txt
awk -F'|' '{
OFS="|";
print
substr($1,1,, substr($1,9,14),
substr($2,1,, substr($2,9,14)
}' a.dat

lbas@mmjf1>b.txt
awk: syntax error near line 4
awk: illegal statement near line 4
awk: syntax error near line 5
awk: illegal statement near line 5

论坛徽章:
0
4 [报告]
发表于 2003-01-22 17:54 |只看该作者

分隔字段问题(急!!!!)

...


原因是因为你的 awk 太老了。

用 nawk 或 gawk 来代替就行了。

论坛徽章:
0
5 [报告]
发表于 2003-01-22 20:23 |只看该作者

分隔字段问题(急!!!!)

nawk -F'|' '{
OFS="|"
print
substr($1,1,, substr($1,9,14),
substr($2,1,, substr($2,9,14)
}' a.dat

nawk: syntax error at source line 4
context is
         >>> substr($1,1,, <<<
nawk: illegal statement at source line 4
nawk: syntax error at source line 5

论坛徽章:
0
6 [报告]
发表于 2003-01-22 22:45 |只看该作者

分隔字段问题(急!!!!)

怎么没有答复了,各位大侠帮帮忙啊

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-01-23 08:07 |只看该作者

分隔字段问题(急!!!!)

这个干活

  1. #!/bin/ksh
  2. awk -F"|" '{
  3. part1 = substr($1, 1, 8)
  4. part2 = substr($1, 9, 14)
  5. part3 = substr($2, 1, 8)
  6. part4 = substr($2, 9, 14)
  7. print  part1"|"part2"|"part3"|"part4
  8. }' a.dat
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-01-23 08:14 |只看该作者

分隔字段问题(急!!!!)

但是OFS=‘|’为什么没工作呢?为什么?为什么?

吃饭!

论坛徽章:
0
9 [报告]
发表于 2003-01-23 08:51 |只看该作者

分隔字段问题(急!!!!)

...

晕死~  

原来 print 后面已经把 $1, $2,  给去掉了,那应该把下面的内容提上去,它后面必须有内容,如果多行的话,用“,”表示该行尚未结束

写成这样就行了:

print substr($1,1,, substr($1,9,14),
substr($2,1,, substr($2,9,14)

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2003-01-23 09:03 |只看该作者

分隔字段问题(急!!!!)

大师兄明鉴,把

  1. print substr($1,1,8), substr($1,9,14), substr($2,1,8), subst($2,9,14)
  2. }' a.dat
复制代码


放在一行就WORK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP