LinuxSir.cn,穿越时空的Linuxsir!

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

awk求教,今天遇到一个复杂的,搞不定了

[复制链接]
发表于 2005-10-24 15:30:35 | 显示全部楼层 |阅读模式
现有一个文件,格式如下:

aa
bb
cc    dd
\n(空行,就一个回车)
ee    ff
gg
    (这行80个空格)
\n(空行,就一个回车)


文件就是有这么一段段构成的,很有规律

等于说,现在的一个记录跨越了好几行.

我现在想把这个文件处理成一个字段一行,我用awk试了半天试不出来,求教大家一下
发表于 2005-10-24 23:19:09 | 显示全部楼层
不知道你意欲何求,不过还是建议你看一下awk的内部的一些函数,像RS,ORS,FS,OFS,....等等!
回复 支持 反对

使用道具 举报

发表于 2005-10-25 13:19:23 | 显示全部楼层
什么是“一个字段行”?是不是就是全缩成一行呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-27 15:05:21 | 显示全部楼层
Post by yongjian
什么是“一个字段行”?是不是就是全缩成一行呢?


sorry,我写错了,笔误.

我的意思就是把这些一个记录的内容都"缩"到一行里,记录于记录之间用换行符分开.

然后整个文本看起来就是一个字段一行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-27 15:13:44 | 显示全部楼层

补充一下

补充一下,原来的文本:

aa
bb
cc    dd
\n(空行,就一个回车)
ee    ff
gg
    (这行80个空格)
\n(空行,就一个回车)
\n(空行,就一个回车)
aaa
bbb
ccc    ddd
\n(空行,就一个回车)
eee    fff
ggg
    (这行80个空格)
\n(空行,就一个回车)
\n(空行,就一个回车)
aaaa
bbbb
cccc    dddd
\n(空行,就一个回车)
eeee    ffff
gggg
    (这行80个空格)
\n(空行,就一个回车)
\n(空行,就一个回车)
....(还有很多很多,我仅仅列出2段,以下数据都雷同的,我就不补充了)


然后我期待的转换后的格式是:

aa         bb          cc          dd          ee           ff         gg   
aaa       bbb        ccc        ddd        eee         fff        ggg
aaaa     bbbb      cccc       dddd      eeee       ffff       gggg
.....(下面的我也不补充了)


就这样的,每行一条记录,还记录原来的面目而已啊!!

谢谢各位了,我还没想出办法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-27 15:14:43 | 显示全部楼层
Post by 寂寞烈火
不知道你意欲何求,不过还是建议你看一下awk的内部的一些函数,像RS,ORS,FS,OFS,....等等!


看了看了,但还是搞不定啊,你帮我看看,谢谢了
回复 支持 反对

使用道具 举报

发表于 2005-10-27 15:46:15 | 显示全部楼层
BEGIN {RS="\n\n";FS="[\n *]";OFS="\t"}
{
for(i=1;i<=NF;i++)
{printf("%s ",$i)}
print ""
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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