我有两个文件。file1
包含文本如下:
#This Data written by the platform Team
id=kingDB
file2
包含文本如下:
#This Data written by the platform Team
id=kiteDB,mangoDB
我想合并file1
数据file2
,然后file2
需要如下:
#This Data written by the platform Team
id=kiteDB,mangoDB,kingDB
我怎样才能做到这一点?
答案1
合并到文件的常用方法是join
join -t = file{1,2} | sed s/=/,/2
答案2
您可以使用sed
,tail
和cut
:
sed -i "s/=\(.*\)/=\1,$(tail -1 file1 | cut -d = -f 2)/" file2
First之间的命令$(...)
获取 的最后一行file1
,根据=
字符剪切它并获取秒字段 ( kingDB
),然后将其放在第二个文件的带有“=”的行末尾。
并非所有sed
版本都有-i
,如果您的版本不尝试:
sed "s/=\(.*\)/=\1,$(tail -1 file1 | cut -d = -f 2)/" file2 > file2.tmp
mv -f file2.tmp file2
¹我假设这里确实file2
以换行符结束,如果不是,你可以不用sed
答案3
如果您有单行,则可以使用以下代码:
echo "id=" $(paste -d "" <( awk -F',' {'printf "%s,%s,", $1, $2 '} file2 ) <( awk -F'=' {'print $2'} file1 ) <(sed -i 's/id=//g' file2 )) > file2