Bash 如何将两个文件合并为一个文件,每个文件都有列';谁的数据?
我有两个文件: 文件1包含:Bash 如何将两个文件合并为一个文件,每个文件都有列';谁的数据?,bash,shell,Bash,Shell,我有两个文件: 文件1包含: 1 2 3 4 John Sam George Ken 文件2包含: 1 2 3 4 John Sam George Ken 我想合并这些文件以创建一个文件(文件3) 我的想法是使用嵌套循环并为每行添加逗号 for x in file1 do echo "$x" >> file3 for y in file2 echo ",$y" >> file3 done done 有我需要使用的命令吗?如何使两个文件中的每个条目都显示在x和y的
1
2
3
4
John
Sam
George
Ken
文件2包含:
1
2
3
4
John
Sam
George
Ken
我想合并这些文件以创建一个文件(文件3)
我的想法是使用嵌套循环并为每行添加逗号
for x in file1
do
echo "$x" >> file3
for y in file2
echo ",$y" >> file3
done
done
有我需要使用的命令吗?如何使两个文件中的每个条目都显示在x和y的一行上?
paste
是您要查找的命令:
$ paste -d',' file1 file2
1,John
2,Sam
3,George
4,Ken
如果需要逗号后的空格,可以使用以下技巧:
$ paste -d', ' file1 /dev/null file2
1, John
2, Sam
3, George
4, Ken
可以使用“粘贴”命令
:|paste -d',' file1 - | paste -d' ' - file2
或
下面是一个使用awk的:
$ awk 'NR==FNR{a[FNR]=$1;next}{print a[FNR] ".", $1}' file1 file2
1. John
2. Sam
3. George
4. Ken
同样,如果文件1
确实是数字,您可以跳过它,只需:
$ awk '{print NR ",", $1}' file2
1, John
2, Sam
3, George
4, Ken