Summary: | /usr/bin/tac некорректно выводит файл с отсутствующим carriadge return в конце файла | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Andrew Kornilov <hiddenman> |
Component: | coreutils | Assignee: | placeholder <placeholder> |
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
Severity: | major | ||
Priority: | P2 | CC: | glebfm, ldv, php-coder, placeholder |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Andrew Kornilov
2007-04-12 20:05:28 MSD
Из-за этого "бага" в etcnet будут некорректно обрабатываться файлы ipv[46]rule,route и правила *tables при "остановке", если нет символа перевода строки в последней строке. Я не знаю, это bug или нет. Напишите, пожалуйста, на bug-coreutils@gnu.org Я считаю, что это баг. Если tac(1) читает построчно, то выводить тоже должен построчно. Склейка последней и предпоследней строк в одну строку в случае no newline at EOF явно противоречит идее "построчно". По аналогии можно, рассмотрим работу sort(1): $ printf 'B\nA' |sort A B $ Если бы sort(1) вывел "AB", то это был бы номер. Вариант согласования с документацией 'info tac': если встречаем EOF без окончательно сепаратора, то такой EOF сам по себе канает за сепаратор. В противном случае два последних records -- последний и предпоследний -- безвозвратно склеиваются, что вряд ли логично. $ echo -n a:b:c |tac -b --separator=: :c:ba$ Я не готов трактовать это поведение как ошибочное, Изложите, пожалуйста, вашу точку зрения на bug-coreutils@gnu.org |