+ -
当前位置:首页 → 问答吧 → 文本处理求助

文本处理求助

时间:2011-02-15

来源:互联网

  1. ---AAA
  2. dskjfnsd
  3. dfnsdjkf
  4. dfs
  5. gflh
  6. hfgh
  7. fgdf
  8. ---BBB
  9. fgdf
  10. fgdfgd
  11. dfsf
  12. fdg
  13. ---CCC
  14. gfdkgs
  15. gfhd
  16. sdsad
  17. gkdf
复制代码
文本格式大体如上所示。

要删除指定的标记行(---开头)到下一个标记行或文件结尾之间的行。

自己尝试写了个sed如下:
  1. sed -e "s/^---BBB//;t a;b c;{:a;/^[^-]/d;N;b a};:c"
复制代码
但是只会删除---行和其下一行。

还请各位大神指教。

作者: ShadowStar   发布时间: 2011-02-15

以顶楼数据为例,你希望得到的结果是?

作者: Shell_HAT   发布时间: 2011-02-15

是不是这个意思?
比如你指定AAA
那么你可以得到
dskjfnsd

dfnsdjkf

dfs

gflh

hfgh

fgdf

作者: cjaizss   发布时间: 2011-02-15



QUOTE:
是不是这个意思?
比如你指定AAA
那么你可以得到
dskjfnsd

dfnsdjkf

dfs

gflh

hfgh

fgdf
cjaizss 发表于 2011-02-15 21:58




    如果是这样
  1. #!/bin/bash
  2. sed -nr '/---'$1'/ba;d;:a;n;/---/q;p;ba' $2
复制代码
./test.sh AAA urfile

作者: cjaizss   发布时间: 2011-02-15

热门下载

更多