- diff - пропустить пару строк, Аноним, 13:26 , 11-Апр-21 (1)
diff <(cat file1 | sed '1,2d') <(cat file2 | sed '1,2d')
- diff - пропустить пару строк, Алдр Бов, 17:03 , 11-Апр-21 (2)
> diff <(cat file1 | sed '1,2d') <(cat file2 | sed '1,2d') Спасибо, принцип понятен, но как-то не работает. :( У меня FreeBSD, пробовал так: diff -a < ( cat $file.$today | sed '1,2d' ) < ( cat $file.$yesterday | sed '1,2d' ) Missing name for redirect. diff -a < \( cat $file.$today | sed '1,2d' \) < \( cat $file.$yesterday | sed '1,2d' \) Ambiguous input redirect. diff -a < \( grep -v $string $file.$today \) < \( grep -v $string $file.$yesterday \) Ambiguous input redirect.
- diff - пропустить пару строк, Аноним, 18:25 , 11-Апр-21 (3)
убери пробелы между < и (
- diff - пропустить пару строк, Алдр Бов, 20:28 , 11-Апр-21 (4)
> убери пробелы между < и (в sh не помогает. Те же самые "Ambiguous input redirect." и "Missing name for redirect.". :-(
- diff - пропустить пару строк, ACCA, 02:49 , 12-Апр-21 (7)
А bash поставить вера не позволяет?В sh будет тебе пляска с бубном: mkfifo /tmp/f1 /tmp/f2 tail -n +2 file1 > /tmp/f1& tail -n +2 file2 > /tmp/f2& diff /tmp/f1 /tmp/f2 wait; wait rm /tmp/f1 /tmp/f2
- diff - пропустить пару строк, Аноним, 00:08 , 12-Апр-21 (6)
Мое решение под баш. Я не знаю пути переписать это под чистый шелл или даже под tcsh. Может быть это и невозможно.
- diff - пропустить пару строк, Алдр Бов, 09:42 , 12-Апр-21 (9)
> Мое решение под баш. > Я не знаю пути переписать это под чистый шелл или даже под > tcsh. Может быть это и невозможно.Да нет, в юнихах почти нет слова "невозможно". Просто надо делать как-то по-другому. Вот только man diff и info diff ясности в вопрос как это - "по-другому" пока не привносят. :(
- diff - пропустить пару строк, Аноним, 19:35 , 12-Апр-21 (13)
>надо делать как-то по-другомуСоздать два временных файла, например. Но как правило в рабочей установке бсд всегда установлен баш, так что просто уберите команду в bash -c и дело с концом.
- diff - пропустить пару строк, Licha Morada, 22:46 , 11-Апр-21 (5)
> Есть небольшая проблема - иногда > изменений нет нессколько дней, но каждый день программно в начало файла > вносится дата. В результате, ежедевно ложится в хранилище пустой по смыслу > дифф.Почему же пустой по смыслу? Это железное свидетельство, что изменений не было. И весит копейки. Хотя, может быть, для вашей задачи это не релевантно.
- diff - пропустить пару строк, Алдр Бов, 09:37 , 12-Апр-21 (8)
>> Есть небольшая проблема - иногда >> изменений нет несколько дней, но каждый день программно в начало файла >> вносится дата. В результате, ежедневно ложится в хранилище пустой по смыслу >> дифф. > Почему же пустой по смыслу? Это железное свидетельство, что изменений не было. > И весит копейки. > Хотя, может быть, для вашей задачи это не релевантно.Оно для нас особой нагрузки пока не несёт. А много мелких файлов забивают фс, и-ноды. Поэтому пока принят такой вариант решения.
- diff - пропустить пару строк, Ann None, 12:02 , 12-Апр-21 (10)
> Добрый день всем! > Есть текстовый файлик на пару сотен тысяч строк, в который команда периодически > вносит изменения. Делается ежесуточный бэкап всего этого, но для понимания суточных > изменений решили хранить отдельно суточный diff. Есть небольшая проблема - иногда > изменений нет нессколько дней, но каждый день программно в начало файла > вносится дата. В результате, ежедевно ложится в хранилище пустой по смыслу > дифф. Курил ман, искал в гугле - не нашёл, как можно > пропустить 1-2 первых строки средствами diff-а? Подскажите, кто знает, плз. Пока > удаляем строку с датой. Но мне кажется, это не правильно.man diff: ... -I, --ignore-matching-lines=RE ignore changes where all lines match RE ... читаю маны вслух с выражением. недорого.
- diff - пропустить пару строк, Алдр Бов, 13:31 , 12-Апр-21 (11)
>[оверквотинг удален] >> вносится дата. В результате, ежедневно ложится в хранилище пустой по смыслу >> дифф. Курил ман, искал в гугле - не нашёл, как можно >> пропустить 1-2 первых строки средствами diff-а? Подскажите, кто знает, плз. Пока >> удаляем строку с датой. Но мне кажется, это не правильно. > man diff: > ... > -I, --ignore-matching-lines=RE > > ignore changes where all lines match RE > ...И каким тут должен быть RE? К примеру: $ diff -a -I *04.2021* $file$today $file$yesterday diff: extra operand `$file.$yesterday' diff: Try `diff --help' for more information > читаю маны вслух с выражением. недорого. Так и я могу прочитать. И уже раз пять перечитал, и об эту строчку спотыкался, но придумать-подобрать RE не смог.
- diff - пропустить пару строк, Ann None, 16:54 , 12-Апр-21 (12) +1
> Так и я могу прочитать. И уже раз пять перечитал, и об > эту строчку спотыкался, но придумать-подобрать RE не смог.-I '.*04\.2021.*' зачитывание введения в регулярные выражения уже будет дороже.
- diff - пропустить пару строк, Алдр Бов, 19:40 , 12-Апр-21 (14)
>> Так и я могу прочитать. И уже раз пять перечитал, и об >> эту строчку спотыкался, но придумать-подобрать RE не смог. > -I '.*04\.2021.*' А! Вот в каком ключе! Я не сообразил. :( Я про терминирование спецсимволов упустил, каюсь. > зачитывание введения в регулярные выражения уже будет дороже. Спасибо за волшебный пендель в правильную сторону!
- diff - пропустить пару строк, Аноним, 19:47 , 12-Апр-21 (15)
В его кейсе нужно убирать дату только из первой строчки, а не из всего файла. Использование этого ключа может спрятать от диффа что-то важное, нельзя так делать. Новичков надо поражать инженерным умом, а не умением гуглить маны (это любая макака умеет).
- diff - пропустить пару строк, Алдр Бов, 11:25 , 13-Апр-21 (16)
> В его кейсе нужно убирать дату только из первой строчки, а не > из всего файла. Использование этого ключа может спрятать от диффа что-то > важное, нельзя так делать. > Новичков надо поражать инженерным умом, а не умением гуглить маны (это любая > макака умеет).Не, всё нормально - я не смог сам правильно составить RE. Там не просто дата - ещё с реквизитами файла. Коллега своим примером подсказал, где я не так делал. Спасибо всем!
- diff - пропустить пару строк, vg, 12:03 , 16-Апр-21 (17)
Использовать правильный инструмент для хранения текстогого файла, например Git, c добавлением наример git-commit-notifier, и получать сразу красиво оформленный диф по почте
- diff - пропустить пару строк, Алдр Бов, 17:27 , 16-Апр-21 (18)
> Использовать правильный инструмент для хранения текстогого файла, например Git, c добавлением > наример git-commit-notifier, и получать сразу красиво оформленный диф по почте Спасибо, мы это рассматривали - до git-а мы ещё не доросли и вряд ли в ближайшей перспективе дорастём: не тот проект.
- diff - пропустить пару строк, vg, 22:29 , 16-Апр-21 (19)
> Спасибо, мы это рассматривали - до git-а мы ещё не доросли и > вряд ли в ближайшей перспективе дорастём: не тот проект.Так это ... просто попробуйте, для этого сильно расти не надо. Даже тот же CVS уже больше Вам даст чем скрипт с диф. Гит просто удобнее и многие утилиты есть. И его использование не подразумевает наличие большого проэкта. Не надо поднимать сразу Гитлаб, или репозиторй где-то. Можно git+ssh для начали, с git-commit-notifier, мы с этим жили достаточно долго даже в большом проэкте. Linux+OpenSSH+Git+Ruby+git-commit-notifier+Postfix. Сразу появляются много плюсов как: - можно делать изменения несколькими людми одновременно. Конфликты конечно возникают, но все решаемо - можно сперва посмотреть изменения других, потом добавить свои - у каждого своя копия со всей историей, и еще и дифом - некоторые текстовые редакторы поддерживают гит из коробки (Atom например) - и многое другое ... Иногда походящий инструмент пугает
- diff - пропустить пару строк, pavlinux, 15:06 , 19-Апр-21 (20) +1
> иногда изменений нет нессколько дней, но каждый день программно в начало файла > вносится дата. В результате, ежедевно ложится в хранилище пустой по смыслу дифф.Приходит к тебе начальник и говорит, " - скажи когда у нас не было изменений?" А ты, - опа,%"№"%4ъыыы*?(?%:омнономном(%;?дык,это,пррррр,вротмненоги.
- diff - пропустить пару строк, Licha Morada, 04:40 , 22-Апр-21 (21)
>> иногда изменений нет нессколько дней, но каждый день программно в начало файла >> вносится дата. В результате, ежедевно ложится в хранилище пустой по смыслу дифф. > Приходит к тебе начальник и говорит, " - скажи когда у нас > не было изменений?" > А ты, - опа,%"№"%4ъыыы*?(?%:омнономном(%;?дык,это,пррррр,вротмненоги.Перед такими предостережениями надо писать "Осторожно, спойлеры!".
|