在bash中将单独文件的列合并成zip文件。

30
我有两个文件,它们都包含一个单词列表。在Bash中,有没有一种简单的方法将这些文件的内容压缩到一个新文件中,使得结果文件具有如下两列:
file1_line1 file2_line1
file1_line2 file2_line2
file1_line3 file2_line3
file1_line4 file2_line4
2个回答

41

名称

paste -- 合并文件的对应或后续行

概要

paste [-s] [-d list] file ...

描述

paste 实用工具将给定输入文件的相应行连接起来,用单个制表符替换除最后一个文件以外的所有换行符,并将结果写入标准输出。


啊,这正是我想要的。谢谢! - nedned

2

复制只能达到一半的效果,但您需要使用sed将文件名附加到单词上。

将此放入shell脚本中,并将两个文件作为参数传递。

#!/bin/sh
paste $1 $2 | sed -e "s/^\([^ ]\+\)\s\+\([^ ]\)/$1_\1 $2_\2/"

其实我并不需要附加文件名,那只是为了表明这行代码的来源。很抱歉,我应该表达得更清楚些。 - nedned

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接