当前位置:  技术问答>linux和unix

在线求教awk的一个问题,关于FS和RS!

    来源: 互联网  发布时间:2016-11-20

    本文导语:  有一段文本的格式是: 19980101-01-001-001/m  文本 19980101-01-001-002/m  文本 19980101-01-001-003/m  文本 19980101-01-001-004/m  文本 19980101-01-002-001/m  文本 19980101-01-002-002/m  文本 19980101-02-001-001/m  文本 19980101-02-001-002/m  文...

有一段文本的格式是:
19980101-01-001-001/m  文本
19980101-01-001-002/m  文本
19980101-01-001-003/m  文本
19980101-01-001-004/m  文本

19980101-01-002-001/m  文本
19980101-01-002-002/m  文本

19980101-02-001-001/m  文本
19980101-02-001-002/m  文本
19980101-02-001-003/m  文本
……

我希望将每段文本单独提取出来存放在一个文件内,段与段之间是用空行分隔的。
最开始我设置的FS=“N”,RS=“”,按照书上所述RS=“”是以空行来分隔一个记录的,也就是能将上面的文本一段一段的分离出来。但是结果并不是这样的,我的脚本是这样写的:

FILENAME=".txt"

BEGIN 
{
        FS = "n";
        RS = "";
}
{       
        FILENAME = NR FILENAME
        for(i = 1; i > FILENAME;
        }
        
}
执行命令:awk -f test.awk ../test > /dev/null
其中../test是输入文件,命令执行的结果是只生成了一个和输入文件内容相同的文件1.txt。
似乎用空行来分隔记录没有效果,我将RS或FS换成"[0-9]{8}-[0-9]{2}-[0-9]{3}-001"也没有用,但是结果是为文件中的每一行生成了一个文件。

用了几个小时都没解决这个问题,希望高手赐教!

|
把首行的 FILENAME=".txt" 去掉
awk脚本中变量不能这么定义,否则将无条件的输出文件原始内容

BEGIN {
  FS = "n";
  RS = "";
}
{ for(i = 1; i > NR ".txt";
  }
}

|
你是想解决掉这个问题,还是想弄清楚awk的一些东东。
如果是前者,那么你可以使用简单的shell写个小循环来解决,如果是后者,在下就爱莫能助了。我基本上使用perl处理文本,不用awk。

|
awk 'BEGIN{RS=""}{for(i=1;i i".txt"}}'

    
 
 

您可能感兴趣的文章:

  • 在线求教, 为什么不能开始除root之外的用户登录??...很急, 在线等
  • 在线求教:关于声音!
  • 求教如何让sendmail允许一公共邮件多人同时登陆!!(在线等)
  • 求教:磁盘挂接后FTP无法使用的问题(28日在线)
  • 高分求教grub问题-在线给分
  • 在线等待求教:sun solaris8 下如何安装g++。高分
  • C调用shell脚本出现问题,在线等待求教高手
  • 【求教】还是关于linux下用纯c编程的问题!!(在线等)
  • 100分求教有关sco服务器的连接问题(在线等)
  • 在线求教一个问题
  • 入门级JDK问题,高分求教,在线等待!
  • include文件中图片出不来,在线等待,高分求教
  • 50求教一个菜鸟级别的UDP套接字问题,关于UDP server端只能接收一次数据的问题?在线等,一直等............
  • 请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!!
  • ubuntu,加载驱动问题,求教在线等待!!!
  • 高分求教简单问题,在线等待......
  • 菜鸟求教,在线等待:case语句后报双分号错误
  • 求教,为什么书上的程序无法在现实中执行,错在哪了? (在线等待)
  • 【求教】关于linux下用纯c编程的问题!!(在线等)
  • 一个关于JavaBean的问题求教各位大侠,问题能解决200分相送!在线等待
  • 简单的输入输出问题 在线等待 在线给分
  • 在线等,在线给分!(简单问题,急)
  • 在线等几个简单问题解答,答出一个在线加50分。
  • linux问题 secureCRT连接的问题 在线等急!~~
  • 关于red hat 8.0的问题,不够再给,(在线等)
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • 急!Linux下编程的问题(在线等)
  • 请教linux共享上网的问题!!!在线等,问题解决马上结贴
  • 装linux遇到问题,有高手在线帮忙吗?请发信息给我
  • FreeBSD安装问题!(在线等待)
  • 高分求教grub问题-在线给分 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于awk的文本替换问题!!!在线等。。。
  • (在线等)问一个awk的问题,谢谢
  • 在awk中怎样取得数组的容量?>>>>>在线等候!!!!
  • 关于LINUX下面AWK的正则表达式,求解答,在线等
  • 基于Html5的mockups在线工具简介
  • 装MYSQL后启动错误! mysqld ended --在线急等!在线急等!在线急等!在线急等!-----
  • MyEclipse SVN插件SubEclipse 在线离线等几种安装方式介绍
  • 智能在线表单设计器 FreeForm智能在线表单设计器
  • Linux使用群24032501,保持20人在线,目标50人在线
  • 怎么用能让asp实现统计在线人数的功能。在线等待!!!帮忙送分!
  • 我需要唯一用户在线,不能两个用户同时在线的JSP实现的设计文档
  • 在线等,在线给分!!!!!!!!!!
  • 在线求助!关于如何使用“信号”的方式来响应键盘按下的消息!在线急盼回复!
  • 如何判断在线用户,主要是如何判断用户关闭所有窗口(即他已经不在线了)?
  • 在线解压压缩 PclZip
  • 在线支持系统 CSLH
  • 在线视频编辑工具 Kaltura
  • 非常急,请问如何用JSP实现在线人数统计
  • 手机在线收音机 MFRadio
  • 在线客服系统 PHP Live!
  • 在线考试系统 TCExam
  • Fancy_fan(阿水)能不能将如何判断在线人数说得更明白些!
  • PHP在线相册 Cheesecake
  • PHP在线象棋游戏 OCC
  • 在线帮助系统 PHD Help Desk


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3