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 编辑
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
[root@rhel6]# cat test
1XXXXX
2XXXXX
TESTX
4XXXXX
5x
6x
ENDXX
8x
[root@rhel6]# awk '!/^TEST/;/^TEST/{exit}' test
1XXXXX
2XXXXX
[root@rhel6]# awk '/^TEST/,/^END/' test
TESTX
4XXXXX
5x
6x
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