LINUX.ORG.RU
ФорумAdmin

Сравнить данные двух файлов

 


0

2

Подскажите, как sed`ом вывести только те данные, которые присутствуют в двух сравниваемых файлах. Типа, как работает вывод команды comm -12 ...



Последнее исправление: anonymus123 (всего исправлений: 2)

И в чем смысл сего извращения?

cat 1
1
2
2
cat 2
2
2
test
comm -12 1 2
2
2
Теперь делаем извращения через diff + sed
diff -u 1 2
--- 1	2016-03-15 21:01:07.623612175 +0500
+++ 2	2016-03-15 21:01:22.711612658 +0500
@@ -1,3 +1,3 @@
-1
 2
 2
+test
diff -u 1 2 | sed -n '/^\s\b/p' | sed 's/^[ \t]*//'
2
2
Если нужно удалить повторяющиеся значения, применяем еще один sed для полного разврата
diff -u 1 2 | sed -n '/^\s\b/p' | sed '$!N; /^\(.*\)\n\1$/!P; D' | sed 's/^[ \t]*//'
2
А теперь, внимание, вопрос? [censored]?

znenyegvkby
()

Если «данные» это строка, то проще всего воспользоваться fgrep-ом.

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.