每隔一行将文件中的行引入另一个文件

时间:2014-02-19 14:49:36

标签: r bash shell

我有一个样本数据集,如下所示:

SampleName1
SampleName2
SampleName3
SampleName4
SampleName5

另一个数据集包含来自每个Sample的信息,如下所示:

0101010101010
0101010101010
0101010101010
0101010101010
0101010101010

我希望我的新数据看起来像这样:

SampleName1
0101010101010
SampleName2
0101010101010
SampleName3
0101010101010
SampleName4
0101010101010
SampleName5
0101010101010

提前致谢。

3 个答案:

答案 0 :(得分:2)

使用awk你可以这样做:

awk 'FNR==NR{a[++i]=$0;next} {print a[FNR] RS $0}' file1 file2
SampleName1
0101010101010
SampleName2
0101010101010
SampleName3
0101010101010
SampleName4
0101010101010
SampleName5
0101010101010

答案 1 :(得分:1)

这应该有效:

paste -d'\n' file1 file2

包含您的数据:

kent$  paste -d'\n' f1 f2
SampleName1
0101010101010
SampleName2
0101010101010
SampleName3
0101010101010
SampleName4
0101010101010
SampleName5
0101010101010

答案 2 :(得分:1)

在R中,您可以尝试:

f1<-read.table(text="SampleName1
SampleName2
SampleName3
SampleName4
SampleName5",stringsAsFactors=F)

f2<-read.table(text="0101010101010
0101010101010
0101010101010
0101010101010
0101010101010",colClasses="character")

n <- seq_along(f1[,'V1'])
data.frame(f3=unlist(lapply(n, function(x)c(f1[x,'V1'],f2[x,'V1']))))

结果如下:

              f3
1    SampleName1
2  0101010101010
3    SampleName2
4  0101010101010
5    SampleName3
6  0101010101010
7    SampleName4
8  0101010101010
9    SampleName5
10 0101010101010