在每行末尾添加后缀字符串?

在每行末尾添加后缀字符串?

我有两个文件:

文件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是执行此操作的最佳方法。为了完整起见,以下是一些其他选项:

  1. Bash 和文件描述符(改编自这里):

    exec 3<file02
    while read foo; do
     read -u3 bar;
     echo $foo $bar;
    done < file01
    exec 3>&-
    

    在这里,我创建一个名为的文件描述符,3它从file02.然后我使用read's选项从文件描述符中-u读取变量。最后,一个正常的循环从读取。bar3whilefoofile01

  2. 珀尔

    perl -ne 'BEGIN{open($fh,"file02");@a=<$fh>} 
        chomp; print "$_ $a[$.-1]"' file01
    
  3. awk/gawk

    gawk 'BEGIN{f=ARGV[1]}
         {
          if(FILENAME==f){a[FNR]=$0}
          else{print a[FNR],$0}
         }' file01 file02
    

相关内容