Linux
在每行的末尾添加一個後綴字元串?
我有兩個文件:
文件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
命令是執行此操作的最佳方法。為了完成,這裡有一些其他選項:
- 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. Perlperl -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