LINUX.ORG.RU
ФорумAdmin

Вывод diff

 


0

1

Использую diff -q И в выводе получаю «команды изменения» вида

2d1
Рандомный текст
2d5
Рандомный текст
3d6
Рандомный текст

Как то можно убрать эти «команды изменений»?

Я бы наверно сделал удалять строчки которые начинаются с цифр, но в рандомном тексте и цифры могут быть



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

Не очень понятно, какие команды ты имеешь в виду. У меня diff -q x.py y.py просто сообщает, что Файлы x.py и y.py различаются без дополнительного вывода. Если файлы одинаковые - вообще вывода нет. У тебя случаем алиасы не накручены на diff?

agentgoblin
()

Убрать откуда, из выхлопа diff? Из файла? Опция -q говорит только отличается файл или нет:

diff -q test.txt test1.txt
Files test.txt and test1.txt differ

Убрать какие «команды изменений», которые между нужным Рандомный текст?

Я увидел у тебя 2d1. Они все подобного формата?

Clockwork ★★★★★
()
Ответ на: комментарий от gedat

Это понятно. Дай команду alias и погляди, нет ли там diff. Заодно приведи полную строку как сравниваешь. Потому что diff -q так не работает, как ты пишешь. Это либо проблема с командой, либо diff у тебя с другой планеты.

Если в скрипте дебажишь, то перед вызовом diff напиши set -x, тогда консолька тебе покажет, с какими в точности аргументами команда diff вызывается. set +x после команды вывод отключит, если мусора много.

agentgoblin
()
Ответ на: комментарий от anc

Действительно, немножко не оттуда взял ключ для diff

Смотри есть файл file1

Андрей
Паша
Света
file2
Андрей
Паша
Сережа
Команда diff file1 file2

Выдаёт

3d2

< Света

И вот это 3d2 мне нужно вырезать

В полном списке как-то так

Изменения:
1a2,4
< Сергей
< Владислав
> Анатолий
4a8
> Владимер
22a27
> Анастасия

Можно наверно попробовать вырезать что не начинается с < и >, но есть вариаты по интереснее?

gedat
() автор топика
Последнее исправление: gedat (всего исправлений: 4)
Ответ на: комментарий от gedat

Эх, по доброте душевной прудублирую свой вопрос :)

Вы это для чего хотите сделать?

Какая конечная цель должна быть достигнута? diff умеет в разные варианты выхлопа.
Вам на экране посмотреть или кому скормить потом? полностью опишите задачу.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от gedat

И вот это 3d2 мне нужно вырезать

Я уже вырезал. Вывод diff (комментарий)

Единственное только, можно {1} заменить на {1,3} и добавить якорь ^ между '!/ и [[:digit, чтобы считывал только совпадения вначале строки.

Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 4)
Ответ на: комментарий от gedat

В таком вариант он выводит не только > <, но и просто совпадения

Твоя команда diff file1 file2 – выводит только разницу между первым и вторым. Про то что нужно отбросить совпадения ты сказал впервые.


> diff file1 file2 | awk '!/^[[:digit:]]{1,3}[[:lower:]]{1,3}[[:digit:]]{1,3}/{print $0}'
< Света
---
> Сережа
Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 2)