说我有三个文件
文件1
1 10.0
2 13.0
3 14.0
file2
1 14.0
2 11.0
3 12.0
file3的
1 9.0
2 11.0
3 4.0
我想将文件合并到一个输出
OUTPUTFILE
10.0 14.0 9.0
13.0 12.0 11.0
14.0 12.0 4.0
所有文件都具有相同的确切行数。每个文件的第二列都需要添加到输出文件
值需要用一个空格分隔。
我想学习如何为多个文件执行此操作,最多4个用于awk或linux终端。
答案 0 :(得分:4)
鉴于你的新问题:
$ paste file1 file2 file3 | awk '{print $2,$4,$6}'
10.0 14.0 9.0
13.0 11.0 11.0
14.0 12.0 4.0
为了避免对awk部分中的字段编号进行硬编码,以便它与粘贴的任何输出一样正常工作:
$ paste file1 file2 file3 | awk '{for (i=2;i<=NF;i+=2) printf "%s%s",$i,(i<NF?OFS:ORS)}'
10.0 14.0 9.0
13.0 11.0 11.0
14.0 12.0 4.0
答案 1 :(得分:2)
Key
Join取决于索引列和间距。
join file1 file2 | awk '{print $2 $3}' > outputfile
假设所有输入文件具有相同的前缀,并且所有文件都根据索引列值(即$ 1)加入(不仅仅是按行索引)。
答案 2 :(得分:0)
如果运行linux尝试使用paste命令。
paste -d " " file1 file2 > file3
答案 3 :(得分:0)
对于文件list1.txt,list2.txt中的import Cocoa
import SpriteKit
let sprite = SKSpriteNode()
var actionarray: [SKAction] = []
actionarray.append(SKAction.moveTo(CGPointZero, duration: NSTimeInterval(1.0)))
actionarray.append(SKAction.removeFromParent())
sprite.runAction(SKAction.sequence(actionarray))
个相同格式的文件,...
N
答案 4 :(得分:0)
使用join命令使用bash的进程替换:
join <(join file1 file2) file3 | cut -d" " -f2-
10.0 14.0 9.0
13.0 11.0 11.0
14.0 12.0 4.0
使用awk,你可以写:
awk '
{result[FNR] = result[FNR] $2 FS}
END {for (i=1; i<=FNR; i++) print result[i]}
' file[123]