Почему вы должны избегать «строго столбчатых» форматов ввода?

Даг Макилрой, изобретатель труб Unix и один из основателей традиции Unix, сказал об этом в то время [McIlroy78]:

(ii) Ожидайте, что выход каждой программы станет входом в другую, пока неизвестную, программу. Не мешайте выводам с посторонней информацией. Избегайте жестких столбчатых или двоичных форматов ввода. Не настаивайте на интерактивном вводе.

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

Что это значит и почему это плохо?

    One Solution collect form web for “Почему вы должны избегать «строго столбчатых» форматов ввода?”

    Я предполагаю, что он имел в виду выровненные столбцы, а не столбчатые данные в целом. В любом случае, я бы точно это понял. Например:

    Плохо:

    1 200 3 100 3 400 

    Хорошо:

     1 200 3 100 3 400 

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

    Например, если бы я использовал cut для получения второго поля каждого из приведенных выше примеров, он потерпел бы неудачу с первого раза:

     $ cut -d' ' -f 2 bad $ cut -d' ' -f 2 good 200 3 

    Из-за дополнительных пробелов второе поле bad файла – это пробел. Однако он работает так, как ожидалось, в good файле.

    Linux и Unix - лучшая ОС в мире.