У меня есть многострочные текстовые файлы (иногда) данных, разделенных табуляцией. Я хотел бы вывести файл, чтобы я мог просмотреть его - поэтому я хотел бы видеть только первые 80 символов каждой строки (я разработал текстовый файл, чтобы поместить важные элементы в первую очередь в каждой строке).
Я думал, что смогу использовать cat, чтобы прочитать каждую строку файла и отправить каждую строку следующей команде в конвейере:
cat tabfile | cut -c -80
Но это казалось сломанным. Я попытался поиграться, и grep, похоже, сработал - но потом я обнаружил, что нет, нет (не у каждой строки в файле было более 80 символов) - кажется, что вкладки считаются как отдельные символы по разрезу.
Я старался:
cat tabfile | tr \t \040 | cut -c -80
Даже при том, что это немного испортило бы мои данные, устраняя удобство чтения пробела. Но это не сработало. Ни один не сделал:
cat tabfile | tr \011 \040 | cut -c -80
Может я неправильно использую tr? У меня раньше были проблемы с tr, когда я хотел удалить несколько пробелов (кажется, версия tr, к которой у меня есть доступ на этой машине, имеет опцию -s для сжатия нескольких символов - возможно, мне придется больше с ней играть)
Я уверен, что если бы я бездельничал, я мог бы использовать perl, awk или sed, или что-то для этого.
Тем не менее, я хотел бы, чтобы решение, которое использует (POSIX?) Обычные команды, чтобы оно было максимально переносимым. Если бы я в конечном итоге использовал tr, я, вероятно, в конце концов попытался бы превратить вкладки в символы, возможно, сделать вычисление, сократить вычисления и затем превратить эти символы обратно во вкладки для вывода.
Это не должно быть одной строкой / вводится непосредственно в командной строке - сценарий в порядке.
Больше информации о tab-файлах:
Я использую tab для разбиения полей, потому что когда-нибудь я захочу импортировать данные в какую-то другую программу. Поэтому я склонен иметь только одну вкладку между частями контента. Но я также использую вкладки, чтобы выровнять вещи по вертикальным столбцам, чтобы улучшить читаемость при просмотре простого текстового файла. Это означает, что для некоторых фрагментов текста я закрываю конец содержимого пробелами, пока не доберусь до места, где будет работать вкладка, выравнивая следующее поле с полями выше и ниже.
DarkTurquoise # 00CED1 Море, Небо, Гребные лодки Природа MediumSpringGreen # 00FA9A Полезно для деревьев Магия Лайм № 00FF00 Только для использования на весенних цыплятах и фруктах
pr
с coreutils
: pr -1 -t -l200 -W80 file
. Увеличьте / уменьшите длину страницы (число после -l
) в соответствии с вашими потребностями.