【发布时间】:2015-10-30 21:30:18
【问题描述】:
我的文件很少:
ifile1.txt ifile2.txt ifile3.txt
3 5 2 2 1 2 1 3 4 3 4 1
1 4 2 1 1 3 0 2 5 3 1 5
4 6 5 2 2 5 5 1 3 4 3 1
5 5 7 1 0 0 1 1 4 3 4 0
2 3 2 4 3 2 4 1 3 1 2 1
我需要从每个文件中复制第 4 行并将其作为列粘贴到 ofile.txt 中:
ofile.txt
5 0 4
5 0 3
7 1 4
1 1 0
我能够通过以下方式做到这一点,但正在寻找一种直接/简短的方法。
我首先使用awk将每个文件的行转换为列
awk '{
for (i=1; i<=NF; i++) {
a[NR,i] = $i
}
}
NF>p { p = NF }
END {
for(j=1; j<=p; j++) {
str=a[1,j]
for(i=2; i<=NR; i++){
str=str" "a[i,j];
}
print str
}
}' ifile1.txt > ofile1.txt
然后我用paste命令作为
paste ofile* > ofile.txt
终于又用awk来打印需要的列了。
【问题讨论】: