Использование awk или sed для сравнения значений двух файлов и добавления информации из файла 2 в файл 1 в новый файл file3 - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть 2 файла: Файл 1 и Файл 2. Я хочу проверить и сравнить имя файла в Файле 1 и файле 2 и там, где они совпадают, вставить в файл_1 числа из файла_2 в новый Файл_3, используя только awk или sed .

Я пытался использовать

cat file.2 | while read line do 

The files 1 and 2 with expected output

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Вы можете сами определить функцию для проверки файла по одному.

checkDiff() {
   file1=$1
   file2=$2
   result=$3
   rm -rf $result
   #check Which one is big based line count
   file1Count=$(cat ${file1}  | wc -l)
   file2Count=$(cat ${file2}  | wc -l)
   # to check which one need to pass to while loop
   if [ $file1Count -gt $file2Count ] ; then
        bigFile=$file1
        smallFile=$file2
   else
        bigFile=$file2
        smallFile=$file1
   fi
   #check difference line by line
   cat $bigFile | while read line ; do
       notpint=$(cat $smallFile | grep  "$line")
       if [ $? -ne 0 ]; then           # if you want to print where they match change "ne" to "eq"
           echo $line >> $result
       fi
   done
   }

#

checkDiff <file1> <file2> <result filename>
0 голосов
/ 28 апреля 2018

Попробуйте это:

awk 'NR==FNR { d[$NF]=$1; next } d[$NF] { print d[$NF] FS $0 }' FILE2 FILE1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...