2016-04-25 3 views
0

У меня есть сценарий в bash, где у меня есть 2 файла emp_details.txt и emp_file.txt. emp_details подробности сотрудников, как показано ниже, проходящий через текстовый файл и сравнивающий с другим и выводящий конкатенированный файл в unix

1 emp1 sales 
2 emp2 marketng 
3 emp3 testing 

emp_file.txt имеет

1 emp1 30 2500 
2 emp2 25 1200 
3 emp3 33 4000 

как я пройти через эти файлы и создать третий файл, который отображает полную информацию о эх 1, 2 и EMP эми 3 как

1 emp1 sales 30 2500 
2 emp2 marketing 25 1200 
3 emp3 testing 33 4000 
+2

используйте вашу строку cmd и прочитайте документацию для 'join' cmd, т. Е.' Man join'. Вы также можете искать здесь и на www для учебных пособий и примеров, используя 'join'. Удачи. – shellter

+0

@ diptea, эти номера строк фактически находятся в ваших файлах? –

ответ

1

Вот один из способов использования awk:

awk ' 
    NR==FNR { emp[$1,$2] = $0; next } 
    (($1,$2) in emp) { print emp[$1,$2], $3, $4 } 
' emp_details.txt emp_file.txt 
1 emp1 sales 30 2500 
2 emp2 marketng 25 1200 
3 emp3 testing 33 4000 

Если вы находитесь на solaris (вариант unix), пожалуйста, не используйте awk по умолчанию. Используйте nawk, или /usr/xpg4/bin/awk.

Если эти издевавшиеся данные значительно отличаются от реальных данных, вам может потребоваться настроить код самостоятельно или обновить свой вопрос и опубликовать данные, которые представляют ваши данные более точно.