Bash: анализ 2 текстовых файлов, выборка по похожим значениям и вывод полученных значений в файл [SOLVED]

Здравствуйте. Хочу автомaтизировать связки ip+mac в сети. Что имеется:

Первый файл значения вида:
1 строка: 1X 1Y 1Z
2 строка: 2X 2Y 2Z
3 строка: 3X 3Y 3Z
.............
9 строка: 9X 9Y 9Z

Второй файл значения вида:
1 строка: 2A 2Y
2 строка: 1A 1Y
3 строка: 3A 2Y
.............
8 строка: 8A 8Y

При этом значения 1Y из первого файла = 1Y из второго файла.
Нужно проанализировать оба файла, найти одинаковые значения, создать третий файл вида:
1 строка: 1X 1Y 1Z 1A
2 строка: 2X 2Y 2Z 2A

Возможно ли это сделать средствами bash, если да то хотелось бы посмотреть примеры. Спасибо

а вы в примере с форматом

а вы в примере с форматом второго файла не напутали?

если второй файл все таки

если второй файл все таки похож на первый, то можно например так:

john_doe@jd ~ $ cat file1
1X 1Y 1Z
2X 2Y 2Z
3X 3Y 3Z
3X 3Y 3Z
4X 4Y 4Z
5X 5Y 5Z
6X 6Y 6Z
7X 7Y 7Z
8X 8Y 8Z
9X 9Y 9Z
john_doe@jd ~ $ 
john_doe@jd ~ $ cat file2
2A 2Y
1A 1Y
3A 3Y
3A 3Y
4A 4Y
5A 5Y
6A 6Y
7A 7Y
8A 8Y
john_doe@jd ~ $ cat test.sh 
#!/bin/bash

while read s1 ; do
	
	X1=$(echo $s1 | awk '{print $2}');
	
	while read s2; do
		if echo $s2 | grep -q "$X1"
			then echo $s1 $s2 | awk '{print $1" "$2" "$3" "$4}';
		fi
	done < file2

done < file1
john_doe@jd ~ $ ./test.sh 
1X 1Y 1Z 1A
2X 2Y 2Z 2A
3X 3Y 3Z 3A
3X 3Y 3Z 3A
3X 3Y 3Z 3A
3X 3Y 3Z 3A
4X 4Y 4Z 4A
5X 5Y 5Z 5A
6X 6Y 6Z 6A
7X 7Y 7Z 7A
8X 8Y 8Z 8A
john_doe@jd ~ $ 

если нужен более чистый баш,

если нужен более чистый баш, то вместо awk можно в принципе и cut приспособить

Спасибо коллеги, вот этот

#!/bin/bash

while read s1 ; do
	
	X1=$(echo $s1 | awk '{print $2}');
	
	while read s2; do
		if echo $s2 | grep -q "$X1"
			then echo $s1 $s2 | awk '{print $1" "$2" "$3" "$4}';
		fi
	done < file2

done < file1

Спасибо коллеги, вот этот вариант подошёл.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".