Как проверить, разграничен ли файл вкладкой и имеет 8 столбцов?

В дополнение к очень хорошему ответу IVA, в то время как Linux (и BSD) очень хорошие операционные системы, ни один не оптимален на "большой железяке". Некоторые приложения (особенно DBMS) просто не масштабируются хорошо горизонтально.

Существуют также убедительные аргументы с точки зрения управления рисками / поддержка получения Ваших аппаратных средств, ОС и прикладного программного обеспечения от единственного поставщика.

Обратите внимание, что эти аргументы не всегда основаны на факте - у меня было больше радости, заставляя SuSe и Redhat решать вопросы со связанными утилитами в их дистрибутивах Linux, чем я имел с HPUX.

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

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

3
12.09.2011, 16:12
3 ответа

Одно решение состоит в том, чтобы использовать awk:

awk -F "\t" 'NF != 8' data.txt

Эта команда распечатает те строки в файле data.txt, который не имеет 8 полей.

7
27.01.2020, 21:10

Вы могли использовать остроту жемчуга, как так:

perl -ne '(s/\t//go)==7 or die "Not tabdelimitedand 8-columned"' t.txt

Который выйдет с сообщением об ошибке, если файл не будет соответствовать. Для разрешения далее (колотят) сценарии:

if perl -ne '(s/\t//go)==7 or exit -1' t.txt
then
    echo correct format
else
    echo unexpected format
fi
2
27.01.2020, 21:10
ct=($(sed -re 's/[^\t]//g' "$file" | expand -t1 | wc -l -c -L))

if (( ((ct[0] * 8) == ct[1]) && (ct[2] == 7) )) ;then
    echo "file contains 8 tab-delimited fields on every line"
else 
    if (( ct[1] == ct[0] )) ;then
        echo "file does not contain any tab-delimiters"
    else
        echo "file contains tabs, but does not have 8 fields on every line"
    fi
fi
0
27.01.2020, 21:10

Теги

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