Как мне найти файлы, которые не заканчиваются новой строкой / переводом строки?

Необходимо разрешить конфликт вручную (копирование файла) и затем фиксировать файл (неважно, если бы Вы скопировали его или использовали локальную версию) как это

git commit -a -m "Fix merge conflict in test.foo"

, Мерзавец обычно автоматически фиксирует после слияния, но когда это обнаруживает конфликты, это не может решить отдельно, это применяет все патчи, которые это выяснило и оставляет остальных для Вас, чтобы разрешить и фиксировать вручную. Страница справочника Слияния Мерзавца, Интенсивный курс Мерзавца-SVN или этот запись в блоге могла бы пролить некоторый свет на то, как это, как предполагается, работает.

Редактирование: Видят сообщение ниже, Вы не должны на самом деле копировать файлы сами, но можете использовать

git checkout --ours -- path/to/file.txt
git checkout --theirs -- path/to/file.txt

для выбора версии файла, который Вы хотите. При копировании / редактирование файла только будет необходимо, если Вы захотите соединение обеих версий.

отметьте ответ mipadis как корректный.

25
задан Rob Bednark 20 June 2018 в 14:36
поделиться

2 ответа

Это глупо; кто-то наверняка может сделать лучше:

for f in `find . -name '*.txt' -type f`; do
    if test `tail -c 1 "$f" | od -c | head -n 1 | tail -c 3` != \\n; then
        echo $f;
    fi
done

N.B. это отвечает на вопрос в заголовке, который отличается от вопроса в теле (который ищет файлы, заканчивающиеся на \ n \ n, я думаю).

2
ответ дан 28 November 2019 в 18:15
поделиться

Другой вариант:

$ find . -name "*.txt" -print0 | xargs -0I {} bash -c '[ -z "$(tail -n 1 {})" ] && echo {}'
1
ответ дан 28 November 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: