将数据从2个文件复制到1个文件并执行比较

时间:2016-04-26 13:26:34

标签: bash awk sed

我有3个文本文件,第一个有这些数据:

qry> /opt/ADL_db/Users/mkhalil/PipeLineWork/2-OutputPlatesTest/20150615_062605.154_0_Front.Frontview.png
cls> /opt/ADL_db/Users/mkhalil/PipeLineWork/1-OutputPlatesReference/20150612_061434.465_0_Front.Frontview.png       

qry> /opt/ADL_db/Users/mkhalil/PipeLineWork/2-OutputPlatesTest/20150615_062606.990_0_Front.Frontview.png
cls> /opt/ADL_db/Users/mkhalil/PipeLineWork/1-OutputPlatesReference/20150612_054413.737_0_Front.Frontview.png 

第二个人拥有qry的所有数据:

20150615_060636.255_0_Front.Frontview.png,,1461584960,AZ694HR
20150615_054400.428_0_Front.Frontview.png,,1461585426,BG018BH
20150615_065249.543_0_Front.Frontview.png,,1461585036,A0563BC

第三个包含cls的所有数据

20150612_060101.766_0_Front.Frontview.png,,1461671421,CF765MP
20150612_073132.634_0_Front.Frontview.png,,1461669509,DR06
20150612_090622.440_0_Front.Frontview.png,,1461670755,BE555GB

是否有一种简单的方法可以打开第二个文件和第三个文件,并将注释字符复制到第一个文件,以便第一个文件看起来像这样

qry> /opt/ADL_db/Users/mkhalil/PipeLineWork/2-OutputPlatesTest/20150615_062606.990_0_Front.Frontview.png AS776HX
cls> /opt/ADL_db/Users/mkhalil/PipeLineWork/1-OutputPlatesReference/20150612_054413.737_0_Front.Frontview.png  BQ851ZE

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

cat second.txt third.txt | while read line; do
  key=`echo $line | cut -d ',' -f1`
  value=`echo $line | cut -d ',' -f4`
  sed -i "s/$key/$key $value/" first.txt
done

它对大数据文件无效,但如果您只有小文件(尤其是first.txt文件),它应该适合您。也许还需要一些逃避/调整。