Linux

在每行的末尾添加一個後綴字元串?

  • June 26, 2013

我有兩個文件:

文件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 手冊)中沒有找到它。

如果您要做的只是將兩個文件“壓縮”在一起,請使用paste命令

paste -d ' ' file01 file02

正如@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中讀取變數。最後,一個正常的循環從.bar``3``while``foo``file01 2. Perl

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

引用自:https://unix.stackexchange.com/questions/80757