LINUX.ORG.RU

GNU wdiff 1.2.1

 , ,


0

3

Обновилась утилита wdiff.

GNU wdiff является интерфейсом (front end) к diff и сравнивает файлы пословно. Слово — это любая строка между пробелами. GNU wdiff полезна для сравнения двух текстов, в которых изменены несколько слов или добавлены/удалены абзацы.

GNU wdiff, создав два временных файла, в каждой строке которых есть по одному слову, вызывает diff для этих файлов. После чего выводит пословную разницу для данных текстовых файлов в более красивом формате.

Это обновление использует последние версии autotools и gnulib, устраняя уязвимость (CVE-2012-3386) системы безопасности и улучшая переносимость.

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

Новую версию можно загрузить по адресу http://ftpmirror.gnu.org/wdiff/.

>>> Подробности

О, не знал о такой утилите. Пригодится кое-где.

strangeman ★★★★ ()

Что происходит при переносе слова? Фалсе позитиве?

FriendshipIsMagic ()
Ответ на: комментарий от dib2

точно?

В данном контексте работы этой конкретной программы.

Впрочем, вы вольны перевести «A word is anything between whitespace» как хотите.

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

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

Не-а. Вот, поменял знаки препинания, и выдало: [-украинский,-] {+украинский...+}

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

Нет, whitespace это множество пробельных символов (пробел, табуляция, неразрывные пробелы и т.д.), но не знаки препинания.

anonymous ()
Ответ на: комментарий от Dragon59

Это принципиально хотя-бы тем, что перенос строки - тоже пробельный символ.

Мне не принципиально. Выполните операцию пробел=«пробельный символ», и не пудрите людям мозг.

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

Есть еще dwdiff — «a diff program that operates at the word level instead of the line level. It is different from wdiff in that it allows the user to specify what should be considered whitespace, and in that it takes an optional list of characters that should be considered delimiters.»

P.S.: не случайно dwdiff в community, а wdiff где-то в AUR.

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

почему diff не работает в DC++?

eR ★★★★★ ()

Не знал, возможно, оно мне пригодится.

a1batross ★★★★★ ()

For the «C» locale, white-space characters are any of:
' ' (0x20) space (SPC)
'\t' (0x09) horizontal tab (TAB)
'\n' (0x0a) newline (LF)
'\v' (0x0b) vertical tab (VT)
'\f' (0x0c) feed (FF)
'\r' (0x0d) carriage return (CR)

seftoner ()

Первый раз об этой штуке узнал, полезная утилита.

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

Слишком плохой, а вот для диффов во всяких ридми между ревизиями - самое то.

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

Думать - это размышлять. А вы в данном случае - придумываете. Бесполезную фигню. Не нужно этого делать, проверять нужно.

ForwardToMars ()
Ответ на: комментарий от record

Всё, что заключено между пробелами, - внезапно - строка.

Строка это то что заключено между маркерами переноса строки - символами #13#10 или #10 или #13.

А вообще интересно как эта утилита обработает слова размером в несколько гигабайт.

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

развели тут пробельных символов, как собак не резанных.

Элементарно - в актуальных кодировках символ #32 пробел, всё остальное - неведомая хрень не являющаяся пробелом.

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

Строка это то что заключено между маркерами переноса строки - символами #13#10 или #10 или #13.

Строка - любая последовательность любых символов, включая непечатные, включая переносы строк и т.п.

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

И как я только жил без морды к дифф'у??! Пойду напьюсь. Тред не читал.

Horse ()
Ответ на: комментарий от record

Строка - любая последовательность любых символов, включая непечатные, включая переносы строк и т.п.

Путаешь со строковой переменной в которой можно хранить любой мусор.

http://ru.wikipedia.org/wiki/Строка Строка — ряд знаков, написанных или напечатанных в одну линию. А как можно в одну линию выводить на экран текст содержащий символы переноса строк? Он же автоматически разобьётся на несколько строк.

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

Путаешь со строковой переменной в которой можно хранить любой мусор.

Опять мастурбация с терминами. В тексте слово - какая строка в одну линию? Слово может занимать тысячу линий.

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

В тексте слово - какая строка в одну линию?
Слово может занимать тысячу линий.

Только из-за того что консоль или лист бумаги слишком узкие, на широких слово напишется в одну линию. Но если слово перенесётся на несколько линий не благодаря узости консоли а из-за маркеров конца строки то это уже будет не одно слово а много слов даже если на узкой консоли они выглядят одинаково. Поэтому фраза «Слово — это любая строка между пробелами.» правильно звучала бы «Слово - это любой набор символов между пробелами или маркерами конца строки». Если читать текст побайтово то можно в этом убедиться.

Napilnik ★★★★★ ()

4 года назад мне её очень не хватало. Обошёлся sed-ом.

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

WinMerge 3 will be modern compare/synchronization tool. It will be based on Qt library and cross-platform. You can use the same tool in Windows and in Linux.

Ключевые слова здесь - will be. А пока есть только версия 2.14, которая не на Qt, не кроссплатформенная и работает только на венде. А так прога хорошая, не спорю.

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

will be

Мда, «Last updated 2011-09-17» — зря обнадёжился. Ну, ничего:

Meld и Kdiff3

varchar ()

Когда-то написал обёртку к ней для вывода цветного диффа в хтмл:

#!/bin/sh
tmp=`mktemp`
cat <<. > $tmp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>DIFF:$1</title>
<style>span.a{background-color:lightgreen;}span.b{background-color:pink;text-decoration:line-through;}</style>
</head>
<body>
<table width="80%" align="center">
<tr>
<td>
.

wdiff -n "$1" "$2" | \
 sed -ne '/{+\|\[-/p' | \
 sed 's@<@\&lt;@g;s@>@\&gt;@g;s@$@<br/>@;s@{+@<span class=a>@g;s@\[-@<span class=b>@g;s@\(+}\|-\]\)@</span>@g;' >> $tmp

cat <<. >> $tmp
</td>
</tr>
</table>
</body>
</html>
.

firefox $tmp &
echo rm -f $tmp | at now + 5 min

anonymous ()
Ответ на: комментарий от mix_mix

Сравни диффом две правки одной новости на ЛОРе.

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

шлешь соавтору текст статьи в TeX, а он тебе возвращает с правками и с переформатированными для удобства чтения абзацами

alpha ★★★★★ ()

Говностандарт GNU в коде детектед. Это же читать невозможно, пипец.

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