Как организовать вывод команды в файл
Обновлено: 21.11.2024
Читает ввод, сортирует данные и записывает результаты на экран, в файл или на другое устройство.
Синтаксис
Параметры
Параметр | Описание |
---|---|
/r | Обратный порядок сортировки ( то есть сортирует от Z до A и от 9 до 0). |
/+ | Указывает номер позиции символа, с которой сортировка будет начинать каждое сравнение. N может быть любым допустимым целым числом. |
/m | Указывает объем основной памяти, используемый для сортировки, в килобайтах. (KB). |
/l | Переопределяет порядок сортировки символов, определенный языковым стандартом системы по умолчанию (то есть языком и страной/ Регион, выбранный во время установки). |
/rec | Указывает максимальное количество символов в записи или строке входного файла (значение по умолчанию — 4 096, а максимальное значение равно 65 535). |
[ :][ |
Примечания
По умолчанию сравнение начинается с первого символа каждой строки. Параметр командной строки /+ начинает сравнение с символа, указанного N. Например, /+3 указывает, что каждое сравнение должно начинаться с третьего символа каждой строки. Строки с менее чем N символами сортируются перед другими строками.
Всегда используется не менее 160 КБ памяти. Если указан размер памяти, для сортировки используется точно указанный объем (должен быть не менее 160 КБ), независимо от объема доступной основной памяти.
Максимальный размер памяти по умолчанию, если размер не указан, составляет 90 % доступной основной памяти, если и входные, и выходные файлы являются файлами, или 45 % основной памяти в противном случае. Настройка по умолчанию обычно обеспечивает наилучшую производительность.
В настоящее время единственной альтернативой локали по умолчанию является локаль C, которая работает быстрее, чем сортировка на естественном языке (она сортирует символы в соответствии с их двоичными кодировками).
Вы можете использовать символ вертикальной черты ( | ), чтобы направить входные данные в команду сортировки из другой команды или направить отсортированные выходные данные в другую команду. Вы можете указать входные и выходные файлы, используя символы перенаправления ( или > ). Может быть быстрее и эффективнее (особенно для больших файлов) указать входной файл напрямую (как определено filename1 в синтаксисе команды), а затем указать выходной файл с помощью параметра /o.< /p>
Команда sort не делает различий между прописными и строчными буквами и не имеет ограничения на размер файла.
Программа сортировки использует таблицу последовательности сопоставления, которая соответствует коду страны/региона и настройкам кодовой страницы. Символы, превышающие код ASCII 127, сортируются на основе информации в файле Country.sys или в альтернативном файле, указанном командой страны в вашем файле Config.nt.
Если сортировка укладывается в максимальный объем памяти (установленный по умолчанию или указанный параметром /m), сортировка выполняется за один проход. В противном случае сортировка выполняется за два отдельных прохода сортировки и слияния, а объемы памяти, используемые для обоих проходов, равны. При выполнении двух проходов частично отсортированные данные сохраняются во временном файле на диске. Если памяти недостаточно для выполнения сортировки в два прохода, выдается ошибка времени выполнения. Если с помощью параметра командной строки /m указать больше памяти, чем реально доступно, может произойти снижение производительности или ошибка времени выполнения.
Примеры
Чтобы отсортировать и отобразить в обратном порядке строки в файле с именем expenses.txt, введите:
Чтобы найти в большом файле с именем maillist.txt текст Джонс и отсортировать результаты поиска с помощью вертикальной черты ( | ), чтобы направить вывод команду поиска для команды сортировки, введите:
Команда создает отсортированный список строк, содержащих указанный текст.
Чтобы отсортировать ввод с клавиатуры и отобразить результаты на экране в алфавитном порядке, вы можете сначала использовать команду сортировки без параметров, набрав:
Затем введите текст, который вы хотите отсортировать, и нажмите клавишу ВВОД в конце каждой строки. Когда вы закончите вводить текст, нажмите CTRL+Z, а затем нажмите клавишу ВВОД. Команда сортировки отображает введенный вами текст, отсортированный по алфавиту.
Вы устали от просмотра перегруженного вывода команд или содержимого файла на терминале? Эта короткая статья продемонстрирует, как отобразить выходные данные команды или содержимое файла в очень четком формате «с столбцами».
Мы можем использовать утилиту столбцов для преобразования стандартного ввода или содержимого файла в табличную форму из нескольких столбцов для более четкого вывода.
Для более ясного понимания мы создали следующий файл «tecmint-authors.txt», который содержит список имен 10 лучших авторов, количество написанных статей и количество комментариев, которые они получили к статье на данный момент.
Чтобы продемонстрировать это, запустите приведенную ниже команду cat, чтобы просмотреть файл tecmint-authors.txt.
Пример вывода
Используя команду столбца, мы можем отобразить очень четкий вывод следующим образом, где -t помогает определить количество столбцов, содержащихся во входных данных, и создает таблицу, а -s указывает символ-разделитель.
Пример вывода
По умолчанию строки заполняются перед столбцами, чтобы заполнить столбцы перед заполнением строк, используйте переключатель -x, а чтобы указать команде столбцов учитывать пустые строки (которые по умолчанию игнорируются), включите флаг -e.
Вот еще один практический пример: запустите две приведенные ниже команды и посмотрите на разницу, чтобы лучше понять, что может сделать волшебный столбец
Пример вывода
Чтобы сохранить правильно отформатированный вывод в файл, используйте перенаправление вывода, как показано.
Дополнительную информацию см. на справочной странице столбцов:
Вам также могут быть интересны следующие статьи по теме.
Если у вас есть какие-либо вопросы, используйте форму комментариев ниже, чтобы написать нам. Вы также можете поделиться с нами любыми полезными советами и рекомендациями по работе с командной строкой в Linux.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:
TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.
Мы благодарны за вашу бесконечную поддержку.
Похожие сообщения
1 мысль о «Отображать вывод команды или содержимое файла в формате столбца»
Я спросил кого-то, что мне не хватает в команде mount, но не смог понять. … смонтировать что
также, файл ошибок не существует, если использовать > для отправки в файл
Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ
Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.
Несколько дней назад меня спросили, как сортировать вывод команды ls в Unix и Linux. С самого начала я знал, как сортировать вывод ls по времени модификации файла, а также знал, как сортировать ls с помощью команды sort в Linux, но я не знал, что есть другие интересные варианты сортировки файлов, пока не посмотрел их. вверх.
В этом кратком руководстве я продемонстрирую параметры сортировки командных файлов Unix/Linux ls, которые я только что изучил.
Сортировка вывода Linux ls по времени модификации файла
Чтобы помочь нам начать, вот два кратких примера, которые показывают, как сортировать выходные данные команды ls по времени изменения файла.
Во-первых, чтобы отсортировать выходные данные команды ls по времени изменения файла в порядке от самого последнего измененного файла (самого нового) к самому старому, используйте эту команду ls:
Это приводит к выводу, подобному следующему:
В этой команде ls аргумент -t команды ls дает нам сортировку по времени модификации файла, а аргумент -l дает нам этот длинный/широкий вывод.
Чтобы сделать обратное и отсортировать вывод ls по времени модификации от самого старого до самого нового, просто добавьте аргумент -r к команде ls, например:
Сортировка вывода команды Unix ls по размеру файла
Я только что узнал, что вы можете сортировать вывод команды ls по размеру файла, не передавая вывод ls в команду sort Linux. Все, что вам нужно сделать, это использовать аргумент -S (это заглавная буква 'S') для вашей команды Unix или Linux ls, например:
(Обратите внимание, что последние два символа — это строчная буква "L" и прописная буква "S".)
Вот пример вывода этой команды:
Кроме того, для сортировки по размеру файла от наименьшего к наибольшему снова просто добавьте параметр -r, чтобы изменить сортировку по умолчанию, как показано в этом примере команды ls:
Вот эта команда, за которой следуют ее выходные данные для того же каталога, что и в предыдущей команде:
Команда Unix ls — сортировка по расширению имени файла
Еще одна интересная вещь, о которой я не знал, это то, что вы также можете сортировать выходные данные команды ls по расширению имени файла. Все, что вам нужно сделать, это использовать аргумент "-X", как показано в этом примере:
(Аргументами здесь являются число один (1) и заглавная буква «X». Я использую число один, чтобы получить вывод в один столбец, чтобы вам было легче увидеть расширения имен файлов.)
В другом каталоге, полном файлов с разными расширениями, эта команда приводит к следующему отсортированному выводу:
Чтобы показать, что нет ничего волшебного в числе один в предыдущей команде, вот аналогичная команда, в которой я комбинирую «X» со строчной буквой «L», чтобы получить длинный вывод ls, отсортированный по расширению имени файла. Вот эта команда ls и ее вывод в том же каталоге:
Как изменить вывод команды ls
Чтобы подчеркнуть это, вы можете отменить вывод любой команды ls с помощью аргумента "-r".
Другие параметры сортировки файлов Unix/Linux ls
Есть и другие способы сортировки вывода команды ls, но я думаю, что это наиболее распространенные методы. Но чтобы быть немного более полным, вот список параметров сортировки ls, которые я только что вытащил из справочной страницы команды CentOS Linux ls:
Различие команд Mac OS X ls
Небольшое замечание: я только что попробовал некоторые из этих команд в Mac OS X 10.5.x, и параметр -X не работает. Все остальные параметры сортировки команды ls работали, как показано.
Как удобный инструмент системного администратора, сортировка позволяет легко изменять порядок текстовых данных различными способами без изменения исходных файлов.
Опубликовано: 9 сентября 2020 г. | Амит Вагмаре
Дополнительные ресурсы по Linux
Команда sort используется в Linux для печати вывода файла в заданном порядке. Эта команда обрабатывает ваши данные (содержимое файла или вывод любой команды) и переупорядочивает их указанным образом, что помогает нам эффективно читать данные. Это очень полезно в тех случаях, когда доступно большое количество информации, и ее необходимо упорядочить в алфавитном, возрастающем или убывающем порядке.
При сортировке по алфавиту команда проверяет первую букву каждой строки и перемещает строки вверх или вниз, чтобы упорядочить каждую строку в алфавитном порядке.
При числовой сортировке команда проверяет числа в каждой строке и упорядочивает строки в порядке возрастания или убывания. Эта организация отображает меньшее число в верхней части выходных данных. Существует очень небольшая разница в командах sort и grep. Команда sort упорядочивает данные в алфавитном или числовом порядке в порядке возрастания или убывания. Команда grep отображает или скрывает только необходимую информацию.
Короче говоря, команда сортировки полезна, когда вам нужно прочитать большой файл или список, который неправильно организован, и чтение этих файлов становится трудным и трудоемким. Чтобы решить эту проблему, используйте команду sort в Linux, чтобы упорядочить содержимое файлов или списков в требуемом формате, что может помочь прочитать требуемое содержимое. Команда sort предполагает, что данные представлены в формате ASCII. Есть несколько полезных опций для сортировки, которые могут изменить поведение вывода. Ниже приведены некоторые примеры вместе с синтаксисом команды.
Синтаксис
Примеры
В первом примере мы используем команду сортировки без каких-либо параметров. Это организует каждую строку в алфавитном порядке, учитывая первую букву каждой строки. Примечание. Строки, начинающиеся с буквы нижнего регистра, отображаются перед строками, начинающимися с буквы верхнего регистра. Поэтому буква b (строчная) находится на первой позиции, а буква B (верхняя) — на второй позиции.
Иногда нам нужны данные в обратном порядке, то есть в порядке, обратном алфавитному. Это достигается с помощью параметра -r, как показано ниже:
Как и сортировка по буквам, мы также можем сортировать по числам. Опция -n упорядочивает числовые значения и обращает ваши результаты с помощью опции -r. Ниже с помощью опции -n мы расположили числа в порядке возрастания. Следовательно, наименьшее число находится вверху, а наибольшее число — внизу. Мы также можем инвертировать вывод, используя ту же опцию -r с -n и отобразить наибольшее число вверху.
Вы также можете отсортировать определенный столбец. Чтобы отсортировать конкретный столбец, используйте параметр -k вместе с номером столбца.Обратите внимание, что в приведенном ниже примере мы использовали только параметр -k для выбора столбца, поэтому команда сортировки упорядочивает данные, учитывая первую цифру второго столбца, а не весь номер второго столбца. Таким образом, строка, содержащая цифру 278, отображается перед строкой, содержащей цифру 28. Если мы используем опцию -n с -k (для выбора столбца), то данные отображаются в порядке возрастания, и последовательность будет от наименьшего к наибольшему числу ( который был рассмотрен во втором примере):
Здесь мы используем номер столбца и числовую сортировку вместе. В следующем примере мы сортируем пятый столбец по возрастанию.
Часто в некоторых строках много повторяющихся записей. Их можно устранить с помощью параметра -u. В следующем примере мы показываем поведение параметра -u для устранения повторяющихся записей:
Есть одна интересная опция, с помощью которой мы можем проверить, отсортирован ли файл или нет. Используя параметр -c, команда сортировки сообщает о первой неуместной строке. Если существующий файл уже отсортирован, то sort ничего не выводит. Он проверяет каждую строку одну за другой и, когда находит какую-либо неотсортированную строку, выдает сообщение. В приведенном ниже примере параметр -c команды sort помогает проверять каждую строку. В первой попытке он сравнивает первую букву первых двух строк, которые считает правильными, т. е. буквы D и буквы M расположены в алфавитном порядке. Во второй попытке он проверяет первую букву третьей строки с начальной буквой первых двух строк и обнаруживает, что третья строка не расположена в алфавитном порядке. Поэтому он печатает первую несовпадающую строку файла с номером строки.
Точно так же, как данные или числа, мы также можем расположить месяцы в файле. Сделайте это с помощью параметра -M и измените порядок с помощью параметра -r.
Мы также можем сортировать более одного файла одновременно, используя соответствующие имена файлов в качестве аргументов, разделенных пробелом. Вывод печатается один за другим. Ниже я использовал параметр -n для сортировки второго числового файла.
Вы также можете перенаправить отсортированный вывод в другой файл, используя параметр -o:
Подведение итогов
Используя приведенные выше параметры, мы видим, что сортировку можно выполнять с содержимым файла или выводом любой команды. Это позволяет легко упорядочивать большие наборы данных в порядке возрастания или убывания. Есть так много вариантов, которые мы можем использовать, чтобы переупорядочить данные всеми возможными способами. Самое удивительное, что мы не вносили никаких изменений в исходный файл. Поэтому наши данные в безопасности.
Читайте также: