Chinaunix

标题: 截取某两列之间的内容,与删除某一类到最后的内容 [打印本页]

作者: wangw8451    时间: 2013-01-24 18:39
标题: 截取某两列之间的内容,与删除某一类到最后的内容
本帖最后由 wangw8451 于 2013-01-24 18:55 编辑

怎么截取文本文件中某两列之间的文件内容么?? 截取 TEST开头的那一行(肯定唯一)到END开头的那一行 之间的文件内容,但是列数不是固定的

还有怎么删除从某一列开始到最后的文件内容?? 删除 TEST开头的那一行到最后的文件内容,但是列数不是固定的


请大家帮忙看一下,麻烦大家啦   万分感谢


文件样本:
第1行XXXXX
第2行XXXXX
第3行TESTX
第4行XXXXX


第N行ENDXX



作者: blackold    时间: 2013-01-24 18:43
回复 1# wangw8451


    没有样本数据?
作者: 关阴月飞    时间: 2013-01-24 18:53
回复 1# wangw8451




    awk '{for(i=4;i<=NF;i++)printf $i” ";print ""}' urfile

1. 截取两列之间的值: 将 i=4  i<=NF  改成你要的列。
2. 删除从某一列开始到最后的列:将 i=4 改成你要的列数。
作者: wangw8451    时间: 2013-01-24 18:56
回复 3# 关阴月飞

谢谢回复,不过问题是列数不是固定的呢,也就是说需要删除的开始项不一定出现在哪一行

   
作者: cao627    时间: 2013-01-24 19:03
回复 1# wangw8451


截取 TEST开头的那一行(肯定唯一)到END开头的那一行 之间的文件内容,但是列数不是固定的


没看懂楼主的意思,主要是截取两个匹配行之间的内容本来就和每行的列数无关啊


作者: 关阴月飞    时间: 2013-01-24 19:08
回复 4# wangw8451

我回复完后,发现你改了要求了, 原本只是说处理列, 现在看来好像是只要求处理行....


   
作者: cao627    时间: 2013-01-24 19:10
本帖最后由 cao627 于 2013-01-24 19:12 编辑
  1. sed -n '/^test/,/^end/p' ourfile
复制代码
打印文件ourfile中以test开头的行,到以end开头的行之间的行
作者: wangw8451    时间: 2013-01-24 19:14
回复 6# 关阴月飞


    抱歉,因为在加班,所以可能我说的不清楚了 呵呵  不好意思啦
作者: 关阴月飞    时间: 2013-01-24 21:15
本帖最后由 关阴月飞 于 2013-01-24 21:20 编辑

回复 8# wangw8451

1. 截取 TEST开头的那一行(肯定唯一)到END开头的那一行 之间的文件内容
awk '/^TEST/,/^END/' urfile

2. 删除 TEST开头的那一行到最后的文件内容
awk '!/^TEST/;/^TEST/{exit}' urfile
  1. [root@rhel6]# cat test
  2. 1XXXXX
  3. 2XXXXX
  4. TESTX
  5. 4XXXXX
  6. 5x
  7. 6x
  8. ENDXX
  9. 8x
  10. [root@rhel6]# awk '!/^TEST/;/^TEST/{exit}' test
  11. 1XXXXX
  12. 2XXXXX
  13. [root@rhel6]# awk '/^TEST/,/^END/' test            
  14. TESTX
  15. 4XXXXX
  16. 5x
  17. 6x
  18. ENDXX
复制代码

作者: dn833    时间: 2013-01-24 21:30
看完觉得自己不是中国人了。。。。。。
作者: seesea2517    时间: 2013-01-25 10:59
回复 12# dn833


    顶啊,看着是要处理行,说的是要处理列,到底是行还是列,只因楼主在加班?
想起一个古诗:
远看处理行,近看处理列,春去花还在,人来了加班。

又想起一个谜语:远看是个灯笼,近看还是一个灯笼,只是有很多的窟窿……
作者: seesea2517    时间: 2013-01-25 11:01
本帖最后由 seesea2517 于 2013-01-25 11:01 编辑

……咦,重复两个回复。




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