我有两个文件:
文件01:
line1
line2
line3
文件02:
A
B
C
我想得到
line1 A
line2 B
line3 C
我可以编写一个 Perl 脚本,但如果我不需要的话那就更好了。
我尝试过使用明显的 grep -o '^' file02 >> file01
但这会产生
line1
line2
line3
A
B
C
这应该是一件简单的事情,但在“man grep”(grep手册)中没有找到它。
答案1
如果您只想将两个文件“压缩”在一起,请使用以下paste
命令
paste -d ' ' file01 file02
答案2
作为由 @1-cr 建议命令paste
是执行此操作的最佳方法。为了完整起见,以下是一些其他选项:
Bash 和文件描述符(改编自这里):
exec 3<file02 while read foo; do read -u3 bar; echo $foo $bar; done < file01 exec 3>&-
在这里,我创建一个名为的文件描述符,
3
它从file02
.然后我使用read
's选项从文件描述符中-u
读取变量。最后,一个正常的循环从读取。bar
3
while
foo
file01
珀尔
perl -ne 'BEGIN{open($fh,"file02");@a=<$fh>} chomp; print "$_ $a[$.-1]"' file01
awk
/gawk
gawk 'BEGIN{f=ARGV[1]} { if(FILENAME==f){a[FNR]=$0} else{print a[FNR],$0} }' file01 file02