У меня есть два файла nmap.txt и hosts.txt .
Первый - это, конечно, результат поиска nmap, и он выглядит так:
====================================
192.168.2.1 (ComputerName1)
Running: Microsoft Windows Vista/7/8
====================================
192.168.2.2 (ComputerName2)
Running: Running: Linux 3.X
====================================
192.168.2.3 ()
====================================
192.168.2.4 ()
Это выглядит так, потому что нет записей DNS для 3-го и 4-го компьютеров, и nmap не смог на 100% определить их операционные системы. Но у меня есть имена компьютеров 3 и 4 в файле hosts.txt.
192.168.2.3 (ComputerName3)
192.168.2.4 (ComputerName4)
Какой самый простой способ заменить отсутствующие имена компьютеров в nmap.txt (192.168.2.3 и 192.168.2.4) их соответствующими именами в hosts.txt?
Я пытался grep -v -F -f nmap.txt hosts.txt> output.txt , который будет выводить только отсутствующие имена компьютеров, например:
192.168.2.3 (ComputerName3)
192.168.2.4 (ComputerName4)
Но это не то, что я хочу.
Вывод должен выглядеть так:
====================================
192.168.2.1 (ComputerName1)
Running: Microsoft Windows Vista/7/8
====================================
192.168.2.2 (ComputerName2)
Running: Running: Linux 3.X
====================================
192.168.2.3 (ComputerName3)
====================================
192.168.2.4 (ComputerName4)
Может быть, что-то с во время чтения строки , но я не эксперт.
Любая помощь будет высоко ценится!