Разрыв строки эха Linux
Обновлено: 21.11.2024
Команду echo можно использовать для печати строк. Стандартное использование — echo firstString secondString . . Кроме того, он предоставляет дополнительные параметры для форматирования вывода.
Злоупотребление эхом
Если вы обнаружите, что собираетесь использовать эхо в ебилде, остановитесь и передумайте. Это почти всегда не нужно.
Прежде всего, для печати сообщений в стандартных сценариях Portage вы можете использовать функции einfo и eerror вместе с соответствующими им функциями, einfon, eerrorn и т. д., которые аналогичны предыдущим, но не будут печатать. завершающая новая строка ( \n ).
Все случаи использования формы echo $ | grep substring просто для проверки, содержит ли содержимое переменной $ substring , или, чаще, echo $ | command устарели, и их следует (и в большинстве случаев можно) использовать как можно реже: для этого без всякой причины требуется дополнительный сеанс оболочки и канал. Раздел "Здесь строки" описывает предпочтительный способ обработки таких случаев.
Здесь строки
Начиная с >=bash-2.05b, были введены так называемые "здесь строки". Используя «здесь строки», вы можете передать содержимое переменной среды на стандартный ввод приложения, используя перенаправление: на самом деле происходит то, что bash расширяет слово и передает результат на стандартный ввод.
Распространенным примером может быть проверка того, содержит ли переменная $ подстроку bar с помощью следующей конструкции: grep bar . Это заменяет устаревшее и более расточительное поведение использования echo $ | полоса grep .
Стандартное использование эха
В стандартных вызовах команда echo без дополнительных параметров выводит аргументы, переданные на стандартный вывод, разделенные пробелом и заканчивающиеся символом новой строки ( \n ).
Если нужно исключить завершающий символ новой строки, можно передать параметр -n, например: echo -n "без завершающей новой строки" .
Специальные символы, такие как символы табуляции ( \t ), символы новой строки ( \n ), символы возврата каретки ( \r ) (т. е. для перевода новой строки из формата DOS в формат Unix) и любой другой символ ASCII, указанный в его кодовом значении. ) можно передать команде echo с параметром -e. Например, чтобы вывести три строки, каждая на разных строках, в одной команде echo, используйте: echo -e "первая строка\nвторая строка\nтретья строка" .
Другие escape-последовательности и дополнительные параметры для команды echo доступны на справочной странице bash(1).
Вопросы или комментарии?
Авторское право (C) Gentoo Authors 2001-2021
Gentoo является товарным знаком Gentoo Foundation, Inc. Текст этого документа распространяется в соответствии с международной лицензией Creative Commons Attribution-ShareAlike 4.0. Применяются правила использования названия и логотипа Gentoo.
22, 0
У меня есть цикл for, в котором я записываю имя файла в другой файл.
Я хочу записать все имена файлов в другой файл без перевода строки. как я могу избежать получения новых строк с эхом?
11 728, 1 345
2 524 241
команда printf
Вы также должны изучить команду printf, как показано ниже:
printf "%-8s|%-20s\n" "$zf" "$unique" >>file4
Я записываю в свой файл4 две переменные $zf и $unique с фиксированным интервалом и символом | между двумя полями.
Еще 10 обсуждений, которые могут вас заинтересовать
1. Программирование оболочки и создание сценариев
Как удалить символ новой строки, если он единственный во всем файле?
У меня есть файл, который приходит каждый день, и данные файла выглядят так, как показано ниже. Vi abc.txt a|b|c|d\na|g|h|j\n Иногда мы получаем файл только с символом новой строки в файле, например vi abc.txt \n (8 ответов)
Обсуждение начато: rak Kundra
2. Программирование оболочки и создание сценариев
Удалить последний символ новой строки..
Привет всем. У меня есть текстовый файл, который выглядит следующим образом: abcd efgh ijkl (пробел) Мне нужно удалить только последний (пробел) из файла. Когда я пытаюсь wc -l имя файла, количество поступающих строк составляет только 3, однако в файле есть пустое место. Пробовал такие варианты. (14 ответов)
Обсуждение начато: Sathya83aa
3. Программирование оболочки и создание сценариев
эхо без новой строки
Я пытаюсь сделать индикатор выполнения загрузки с помощью bash, и мне нужно вывести процентное значение, не создавая новую строку и не конкатенируя последнюю строку вывода. Вывод должен заменить последнюю строку вывода в терминале. Это то, что вы видите, когда wget или curl загружают файлы. (6 ответов)
Обсуждение начато: locoroco
4. Программирование оболочки и создание сценариев
замена символом новой строки
У меня есть файл (pema) с одной длинной записью, которую я должен разбить на несколько строк. (5 ответов)
Команда «echo» всегда будет добавлять новую строку, когда вы запускаете ее в командной консоли. Это удобно, когда вы хотите распечатать переменные среды и другую информацию. Он разделяет отдельные фрагменты информации в команде и упрощает их идентификацию.
Но если вы хотите скопировать вывод и использовать его в другой консоли, дополнительная строка может стать проблемой. Кроме того, если вам нужно использовать команду echo, но вы хотите создать файл CSV, невидимая строка может сделать все ваши усилия тщетными.
В этой статье объясняется, как использовать команду «echo» без создания новой строки для разных платформ.
Как выполнить эхо без новой строки в командной строке Windows
Если у вас Windows 10, вы можете получить доступ к командной строке для ввода команд. В некоторых случаях новая строка может вызвать проблемы, особенно если вы хотите скопировать вывод и использовать его вне командной строки.
Итак, если вы введете «echo 1» в качестве команды в приглашении, вы получите 1 в качестве вывода, за которым следует новая строка и еще одна строка ввода.
Но если вы хотите использовать ту же команду без добавления новой строки, вам нужно ввести дополнительные команды после «echo».
Давайте рассмотрим это шаг за шагом:
- Одновременно нажмите клавиши Windows и R, чтобы открыть окно "Выполнить".
- Введите «cmd» в поле «Открыть».
- Введите в командной строке следующую команду:
echo | set /p=ваш текст или переменная (в данном примере это «1») - Нажмите «Ввод», чтобы выполнить эту команду.
- Вы не должны видеть новую строку между ними.
Если вы хотите скопировать вывод в буфер обмена, вам придется использовать команду 'echo' с командой 'clip'. - Используйте следующий код:
echo | установить /p=ваш текст или переменную|клип - Команда clip скопирует текст или переменную в буфер обмена.
- Откройте любой текстовый инструмент. Например, Блокнот.
- Вставьте в него буфер обмена.
- Вы должны увидеть результат в виде строки текста в Блокноте.
- как перейти с одной строки на другую
- различные способы использования новой строки
- когда DiskInternals может вам помочь
Как выполнить эхо без новой строки в Bash
Bash — это командная консоль в Linux и Mac OS, которая также распознает команду «echo». В случае Bash эхо также создает новую строку в выводе, но вы можете использовать другие шаги, чтобы остановить его.
Лучший способ удалить новую строку — добавить ‘-n’. Это означает, что не следует добавлять новую строку.
Если вы хотите написать более сложные команды или отсортировать все в одной строке, используйте параметр «-n».
Например, если вы введете код:
для x в $
do
echo $x
done| сортировать
Команда echo $x рассортирует переменные по отдельным строкам. Это может выглядеть примерно так:
1
2
3
4
5
Поэтому он не будет печатать числа в одной строке.
Есть способ отобразить вывод в одной строке; вам нужно использовать только команду ‘-n’.
Это будет выглядеть так:
Нажмите «Ввод», и вы должны увидеть числа в той же строке.
Эхо с командой Printf в Bash
Еще один способ избежать добавления новой строки с помощью команды "echo" — объединить ее с командой "printf".
Например, воспользуемся следующим кодом:
NewLine=`printf “n”`
echo -e “Line1$Line2”
Не добавляя пробел после «n», вы получите следующий результат:
Однако, если вы добавите пробел после «n», например:
NewLine=`printf «n» `
echo -e «Line1Line2»
Вы получите следующий результат:
Строка1
Строка2
Если вы хотите, чтобы все введенные данные по какой-то причине печатались в одной строке, вы всегда можете использовать первый пример.
А как насчет PowerShell?
Windows PowerShell не создает новую строку с помощью команды echo. Но если вы хотите добавить содержимое непосредственно в текстовый файл через PowerShell, вам следует ввести команду «-NoNewline» после текста или переменной.
Это чрезвычайно полезно, например, для создания CSV-файла. Или, если по какой-то причине вам нужно, чтобы все ваши переменные оставались на одной строке.
Обратите внимание, что без команды «-NoNewLine» после достижения конца строки автоматически перемещается на новую строку.
Эхо Тора
Теперь, когда вы знаете, как избежать добавления новой строки с эхом, вы можете продолжить кодирование.
Если вы знаете другие методы выполнения, не забудьте поделиться с сообществом в комментариях. Заранее большое спасибо.
Как получить новую строку в сценарии оболочки
Перевод строки используется для обозначения конца строки в скрипте, чтобы отметить начало новой строки, что называется разрывом строки или переводом строки. Точно так же, как вы поместите тег br в сценарии HTML, чтобы перевести последующие символы в новую строку, именно это означает новая строка в сценариях оболочки.
Здесь вы узнаете:
Вы готовы? Давайте читать!
Самый простой способ использовать новую строку в сценарии оболочки
Существует несколько способов вставки новой строки в сценарий оболочки. Однако вот некоторые из самых простых способов сделать это:
Пример 1 — новая строка с командой echo
Приведенный выше скрипт будет печатать
Пример 2 — новая строка
Когда вы пишете команду «echo» без добавления каких-либо аргументов, она печатает пустую строку.
Еще один способ сделать это:
Пример 3 — новая строка
Это напечатает:
Пример 4 — новая строка
Самый часто используемый символ новой строки
Если вы не хотите повторно использовать эхо для создания новых строк в сценарии оболочки, вы можете использовать символ \n. \n — это символ новой строки для систем на основе Unix; это помогает переносить команды, идущие после него, на новую строку. Пример ниже.
Пример 5 — новая строка с символом n
Использование команды printf в сценарии оболочки
Вместо эха можно использовать printf. Printf — это альтернативный способ вставки новых строк в сценарии оболочки вместо использования echo –e. Это связано с тем, что флаг -e совместим не со всеми системами.
Printf совместим со многими системами и более надежен; однако это не соответствует POSIX. Кроме того, вам нужно будет добавить \n в конце, потому что printf не добавляет новые строки автоматически, как это делает echo.
Пример 6 — новая строка
Что делать, чтобы открыть файлы Linux из Windows?
Обычно вы не можете открывать файлы Linux из Windows, но иногда вам может понадобиться срочно получить доступ к файлам в ваших разделах Ext2/3/4. В таких случаях DiskInternals Linux Reader может очень помочь. Этот программный инструмент поможет вам получить доступ к файлам Linux с ПК с Windows. Это бесплатная программа с интуитивно понятным интерфейсом. Используя DiskInternals Linux Reader, вы можете просматривать и получать доступ к файлам Linux, но не можете редактировать их напрямую.
Этапы чтения файлов Linux в Windows
Во-первых, вам необходимо установить DiskInternals Linux Reader на свой компьютер.
DiskInternals Linux Reader - окно установки
Запустите приложение, чтобы просмотреть все файлы разделов Linux.
Выберите раздел, в котором вы сохранили файлы Linux.
DiskInternals Linux Reader — выберите диск Linux
Просмотреть все файлы Linux; Linux Reader может читать мультимедийные файлы, документы и любые другие файлы в файловых системах (Ext2/3/4, ReiserFS, Reiser4, HFS, HFS+, FAT, exFAT, NTFS, ReFS). Чтобы просмотреть файл, щелкните файл правой кнопкой мыши и выберите «Просмотр в новом окне».
DiskInternals Linux Reader — откройте диск для просмотра файлов Linux Reader — просмотр любых файлов Linux в Windows
Теперь скопируйте файлы из раздела Linux в разделы Windows и начните редактирование.
Читайте также: