Chinaunix

标题: 请教大家,如何将一个文件里的两行转换为一行? [打印本页]

作者: sunzhig    时间: 2003-04-04 12:02
标题: 请教大家,如何将一个文件里的两行转换为一行?
请教大家,如何将一个文件里的两行转换为一行?
  如:a  bb  ccc
         d  ee  fff
转换为 a bb ccc d ee fff?

谢谢!
作者: aquino    时间: 2003-04-04 12:10
标题: 请教大家,如何将一个文件里的两行转换为一行?
awk -F"\n"  '{printf $1; getline; printf $1 "\n"}'
作者: nkliyong    时间: 2003-04-04 12:35
标题: 请教大家,如何将一个文件里的两行转换为一行?
awk '{printf;getline;printf}'
作者: sunzhig    时间: 2003-04-04 12:40
标题: 请教大家,如何将一个文件里的两行转换为一行?
非常感谢,再进一步问,我的文件有一百多行,若每相邻两行合并为一行,又该怎摸办?谢谢!
作者: nkliyong    时间: 2003-04-04 12:47
标题: 请教大家,如何将一个文件里的两行转换为一行?
awk '{printf;getline;printf "\n"}'
作者: sunzhig    时间: 2003-04-04 12:55
标题: 请教大家,如何将一个文件里的两行转换为一行?
我用
more filename |awk '{printf;getline;printf "\n"}'
只打印出所有的第二行,为甚摸?谢谢!
作者: didikei    时间: 2003-04-04 12:56
标题: 请教大家,如何将一个文件里的两行转换为一行?
vi 里
:g/^/j
作者: sunzhig    时间: 2003-04-04 13:05
标题: 请教大家,如何将一个文件里的两行转换为一行?
谢谢大家,这里的氛围真的很好!
我用
more filename |awk '{print $0;getline;print $0"\n"}'
可印出所有行,但行没有合并,为甚摸?谢谢!
作者: nkliyong    时间: 2003-04-04 14:06
标题: 请教大家,如何将一个文件里的两行转换为一行?
可以这样理解awk中print函数输出结束自动换行
而printf不换行.
作者: sunzhig    时间: 2003-04-04 14:25
标题: 请教大家,如何将一个文件里的两行转换为一行?
ok!
use more filename |awk '{printf $0;getline;printf $0"\n"}'  it's ok
but
"more filename |awk '{print $0;getline;print $0"\n"}' "
or
"more filename |awk '{printf;getline;printf"\n"}' "
can not give the correct result
thanks all
作者: sunzhig    时间: 2003-04-04 14:39
标题: 请教大家,如何将一个文件里的两行转换为一行?
顺便再问一下,如果有两个文件:
filea  
a  bb ccc
d  ee fff
fileb
a  11  222
d   33  444
两个文件的每一行的第一列相同
我要得到filec

a bb ccc a 11 222
d ee fff  d 33 444

可以这样:
more fileb>>filea
more filea|sort -rn +1>filed
more filed|awk '{printf $0;getline;printf $0}'>filec
得到结果

有没有更好的方法,不用合并文件,直接比较两个文件然后进行对应行的合并呢?
作者: sunzhig    时间: 2003-04-04 14:41
标题: 请教大家,如何将一个文件里的两行转换为一行?
顺便再问一下,如果有两个文件:
filea  
a  bb ccc
d  ee fff
fileb
a  11  222
d   33  444
两个文件的每一行的第一列相同
我要得到filec

a bb ccc a 11 222
d ee fff  d 33 444

可以这样:
more fileb>>filea
more filea|sort -rn +1>filed
more filed|awk '{printf $0;getline;printf $0}'>filec
得到结果

有没有更好的方法,不用合并文件,直接比较两个文件然后进行对应行的合并呢?
作者: nkliyong    时间: 2003-04-04 14:47
标题: 请教大家,如何将一个文件里的两行转换为一行?
more filename |awk '{printf;getline;printf $0"\n"}'
这样写是对的,
more filename |awk '{printf;getline;printf"\n"}'
不对,呵呵printf,print不跟参数就输出$0
作者: sunzhig    时间: 2003-04-04 14:57
标题: 请教大家,如何将一个文件里的两行转换为一行?
hehe,nkliyong 说得好!能不能帮我想想后面的那个问题,谢谢了。。。。
作者: nkliyong    时间: 2003-04-04 15:18
标题: 请教大家,如何将一个文件里的两行转换为一行?
paste filea fileb
just do it
作者: aquino    时间: 2003-04-04 18:21
标题: 请教大家,如何将一个文件里的两行转换为一行?
原帖由 "nkliyong" 发表:
paste filea fileb
just do it


paste多出一列,要先cut掉。




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