Новости из Блогов Определение типа окончания строк (Windows или Unix) для текстовых файлов в небольшом

Discussion in 'Мировые новости. Обсуждения.' started by d3l3t3, 23 Aug 2012.

  1. d3l3t3

    d3l3t3 Banned

    Joined:
    3 Dec 2010
    Messages:
    1,771
    Likes Received:
    98
    Reputations:
    10
    Ситуация: небольшой Web-проект разрабатывается несколькими людьми на разных ОС:
    Windows и Linux. В результате в некоторых файлах перевод строк сделан в стиле
    Windows, в некоторых - в стиле Unix. Неудобство состоит в том, что если
    какая-то "интеллектуальная" программа поменяет тип перевода строк, система
    контроля версий Subversion помечает все строки как изменившиеся, и нужны
    дополнительные усилия чтобы определить реальные изменения. Поэтому было принято
    решение определить тип перевода строк в каждом файле, и применить
    соответствующие меры (например, использовать атрибут svn:eol-style в subversion).

    Скрипт простой, легко кастомизируется под автоматическую конвертацию (с помощью
    dos2unix), другие типы файлов, определение стиля Macintosh (в данном случае
    различается только Windows и Unix):

    Code:
       for FILE in `find -iname '*.php' -or -iname '*.css' -or -iname '*.js' -or -iname '*.txt' -or -iname '*.xml'` ; do
          echo -n "$FILE ... " ;
          WIN=`grep -P "\r$" $FILE | head`;
          if [ -z "$WIN" ] ; then
             echo "Unix"
          else
             echo "Windows"
          fi
       done
    Автор: Kroz
    http://www.opennet.ru/tips/2709_shell_linebreak_subversion_eol.shtml