LinuxSir.cn,穿越时空的Linuxsir!

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

请教一个文本抽取问题

[复制链接]
发表于 2009-7-27 19:45:08 | 显示全部楼层 |阅读模式
text.txt如下内容:
name1:
        blablabla....

name2:
        some content go here....
        blabla...
        some text
怎么写bash脚本抽取得到每个name分别对应的内容?
name可能有很多,每个name下的内容可能是一行,也可能是多行不定。
发表于 2009-7-27 22:11:54 | 显示全部楼层
cat a.awk:
#!/usr/bin/awk -f
BEGIN { RS="\n\n"; FS="\n" }

{
    content="";
    print $1;
    for(i=2; i<=NF; i++)
        content=content $i;
    print content;
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-27 23:01:57 | 显示全部楼层
Post by ziyang;2010157
cat a.awk:
#!/usr/bin/awk -f
BEGIN { RS="\n\n"; FS="\n" }

{
    content="";
    print $1;
    for(i=2; i<=NF; i++)
        content=content $i;
    print content;
}

谢谢!
但是各个段之间(name1和nam2间)不一定有空行。可能有,也可能没有。
所以如果没空格,用\n\n来做记录分隔符就不行了。。。
回复 支持 反对

使用道具 举报

发表于 2009-7-27 23:27:57 | 显示全部楼层
那可有明确的特征来表示哪行是name?或者给出一部分你的数据文件看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-28 22:00:10 | 显示全部楼层
Post by ziyang;2010176
那可有明确的特征来表示哪行是name?或者给出一部分你的数据文件看看

固定的名字,比如name1,name2这样子是name。
回复 支持 反对

使用道具 举报

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

本版积分规则

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