Chinaunix

标题: 分隔字段问题(急!!!!) [打印本页]

作者: candy18    时间: 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
作者: taige    时间: 2003-01-22 17:22
标题: 分隔字段问题(急!!!!)
是不是
OFS="|" ;
要加分号!?
作者: candy18    时间: 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
作者: 红袖添香    时间: 2003-01-22 17:54
标题: 分隔字段问题(急!!!!)
...


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

用 nawk 或 gawk 来代替就行了。
作者: candy18    时间: 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
作者: candy18    时间: 2003-01-22 22:45
标题: 分隔字段问题(急!!!!)
怎么没有答复了,各位大侠帮帮忙啊
作者: laoxia    时间: 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
复制代码

作者: laoxia    时间: 2003-01-23 08:14
标题: 分隔字段问题(急!!!!)
但是OFS=‘|’为什么没工作呢?为什么?为什么?

吃饭!
作者: 红袖添香    时间: 2003-01-23 08:51
标题: 分隔字段问题(急!!!!)
...

晕死~  

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

写成这样就行了:

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


作者: laoxia    时间: 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了
作者: 红袖添香    时间: 2003-01-23 09:12
标题: 分隔字段问题(急!!!!)
Life is like a box of chocolate, you'll never know what you're gonna get


阿甘?  
作者: laoxia    时间: 2003-01-23 09:24
标题: 分隔字段问题(急!!!!)
RIGHT! 俺曾为这傻小子泪流满面
作者: Tianny_Xie    时间: 2016-01-22 15:24
  1. awk -F '|' '{print substr($1,1,8)"|"substr($1,9,6)"|"substr($2,1,8)"|"substr($2,9,6)}' a.txt | sed '/^|/d'
复制代码

作者: wp7731695    时间: 2016-01-22 16:47
awk 'BEGIN{OFS="|";FIELDWIDTHS="8 15 6"}{$1=$1;print $0}' test.txt





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2