Bash распечатать содержимое файла

Обновлено: 03.07.2024

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

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

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

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

5 команд для просмотра файлов в Linux

Прежде чем вы расскажете, как просмотреть файл в Unix-подобных системах, позвольте мне пояснить, что здесь я имею в виду текстовые файлы. Существуют различные инструменты и команды, если вы хотите читать двоичные файлы.

1. Кот

Это самая простая и, возможно, самая популярная команда для просмотра файла в Linux.

Cat просто выводит содержимое файла на стандартный дисплей, т. е. на ваш экран. Это не может быть проще, не так ли?

пример команды cat

cat отображает содержимое файла на экране

Cat становится мощной командой при использовании с его параметрами. Я рекомендую прочитать это подробное руководство по использованию команды cat.

Проблема с командой cat заключается в том, что она отображает текст на экране. Представьте, что вы используете команду cat с файлом, содержащим 2000 строк. Весь ваш экран будет заполнен 200 строками, и это не идеальная ситуация.

Что делать в таком случае? Используйте команду less в Linux (объяснено позже).

Команда nl почти аналогична команде cat. Единственное отличие состоит в том, что он добавляет номера строк при отображении текста в терминале.

пример команды nl

Команда nl отображает текст с номерами строк

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

3. Меньше

Команда Less просматривает файл по одной странице за раз. Самое лучшее, что вы выходите меньше (нажав q), на экране не отображаются строки. Ваш терминал остается чистым и нетронутым.

less пример команды

Я настоятельно рекомендую изучить несколько параметров команды "Меньше", чтобы использовать ее более эффективно.

Существует также больше команд, которые использовались в старые времена, но меньше команд имеют более удобные функции. Вот почему вы можете встретить юмористический термин «лучше меньше, да лучше».

4. Голова

Команда Head — это еще один способ просмотра текстового файла, но с небольшим отличием. Команда head по умолчанию отображает первые 10 строк текстового файла.

Пример команды Head

Вы можете изменить это поведение, используя параметры команды head, но основной принцип остается прежним: команда head начинает работу с заголовка (начала) файла.

5. Хвост

Команда Tail в Linux похожа на команду head, но в то же время противоположна ей. В то время как команда head отображает файл с начала, команда tail отображает файл с конца.

По умолчанию команда tail отображает последние 10 строк файла.

Команда Tail в Linux

Команды Head и Tail можно комбинировать для отображения выбранных строк из файла. Вы также можете использовать команду tail для просмотра изменений, внесенных в файл, в режиме реального времени.

Бонус: команда строк

Хорошо! Обещал показать только команды для просмотра текстового файла. А этот работает как с текстовыми, так и с бинарными файлами.

Команда Strings отображает читаемый текст из двоичного файла.

Нет, он не конвертирует двоичные файлы в текстовые. Если двоичный файл состоит из фактического читаемого текста, команда strings отображает этот текст на вашем экране. Вы можете использовать команду file, чтобы найти тип файла в Linux.

Заключение

Некоторые пользователи Linux используют Vim для просмотра текстового файла, но я думаю, что это излишне. Моя любимая команда для открытия файла в Linux — команда less. Он оставляет экран чистым и имеет несколько параметров, которые значительно облегчают просмотр текстового файла.

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

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

Предположим, у вас есть файл с именем company.txt, который содержит названия компаний. Этот файл содержит следующее содержимое.

Пример -1: Чтение содержимого файла из командной строки

Предположим, вы хотите прочитать файл company.txt построчно из командной строки без команды «cat». Выполните следующую команду, чтобы выполнить задачу. Цикл while будет читать каждую строку из файла company.txt на каждом шаге и сохранять содержимое строки в переменной $line, которая будет напечатана позже.


Пример 2. Чтение содержимого файла с помощью скрипта

Создайте файл bash и добавьте следующий код для чтения содержимого определенного файла. Здесь существующее имя файла хранится в переменной $filename, а переменная $n используется для хранения значения номера строки этого файла. Как и в предыдущем примере, цикл while используется для чтения этого файла с номером строки.

Выполните следующую команду, чтобы выполнить скрипт.

Выполните команду cat с файлом company.txt, чтобы отобразить исходное содержимое файла company.txt.


Пример -3: Передача имени файла из командной строки и чтение файла

Создайте файл bash и добавьте следующий скрипт. Этот скрипт возьмет имя файла из аргумента командной строки. Значение первого аргумента считывается переменной $1, которая будет содержать имя файла для чтения. Если файл существует в текущем местоположении, то цикл while будет читать файл построчно, как в предыдущем примере, и печатать содержимое файла.

Запустите приведенный выше скрипт с файлом employee.txt в качестве значения аргумента. Вывод покажет содержимое файла employee.txt, удалив лишнее пространство. Вы можете показать исходное содержимое файла employee.txt с помощью команды «cat».


Пример – 4. Чтение файла с пропуском обратной косой черты

Если вы хотите прочитать каждую строку файла, опуская обратную косую черту, вам нужно использовать параметр «-r» с командой чтения в цикле while.

Создайте файл с именем company2.txt с обратной косой чертой и выполните следующую команду, чтобы выполнить сценарий. В выводе будет показано содержимое файла без обратной косой черты.


Вам потребуется прочитать файл для многих целей программирования. Например, вы можете легко искать или сопоставлять любой конкретный контент из любого файла, читая каждую строку отдельно. Таким образом, это важная задача для любого программирования. В этом руководстве показаны несколько простых примеров чтения файла в сценарии bash. Это поможет вам получить представление о чтении содержимого файла построчно, используя цикл while в сценарии bash, и более эффективно применять его в вашем сценарии. Для получения дополнительной информации смотрите видео!

Об авторе

Фахмида Есмин

Я веду курсы веб-программирования. Мне нравится писать статьи или учебные пособия на различные темы в области ИТ. У меня есть канал на YouTube, на котором публикуются различные учебные пособия по Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel и т. д.: Справка Tutorials4u.

Информационный аватар участника

5, 0

$ bash -версия
GNU bash, версия 4.4.12(1)-выпуск (x86_64-pc-msys)

Информационный аватар участника

15 129, 5 008 

-print как действие в поиске печатает имена найденных файлов, а не их содержимое. Первый и самый простой подход:

Еще 10 обсуждений, которые могут вас заинтересовать

1. Программирование оболочки и создание сценариев

Запустите программу-распечатайте параметры для вывода файла-замените содержимое файла операции максимальным 4-м столбцом

Привет друзья! Это единственное решение моей задачи. Таким образом, любая помощь высоко ценится. У меня есть файл cat input1.bed chr1 100 200 abc chr1 120 300 def chr1 145 226 ghi chr2 567 600 unix Теперь у меня есть еще один файл с именем input2.bed (это двоичный файл, который не читается пользователем. (7 ответов) )

Обсуждение начато: jacobs.smith

2. UNIX для чайников, вопросы и ответы

Как искать две строки в файле и печатать содержимое между ними в файл

Обсуждение начато: webbi

3. Программирование оболочки и создание сценариев

скрипт для чтения содержимого файла и печати

Привет, Нужна помощь в написании сценария для чтения содержимого этого файла test Test 00a 00b 00c 00d 00e 00f, где необходимо прочитать каждую строку, чтобы получить отображение, такое как форма мета из dev 00a , config = Striped; добавьте dev 00b:00f в meta 00a Может ли кто-нибудь помочь мне в написании этого скрипта (2 ответа)

Обсуждение начато: praveen1516

4. Программирование оболочки и создание сценариев

Прочитать содержимое файла и распечатать

AT ---------- 0 Прошедшее: 00:00:00.02 SO ---------- 0 Прошедшее: 00:00:00.01 SE -------- -- 0 Прошло: 00:00:00.01 CR ---------- (4 ответа)

Обсуждение начато: sandy1028

5. Программирование оболочки и создание сценариев

найти файл и распечатать только содержимое с помощью grep

Привет, кто-нибудь может мне помочь. У меня есть несколько файлов, и я ищу содержимое в этих файлах. Если у меня есть совпадение, я распечатаю вывод: имя файла: содержимое. Но в одном файле больше совпадений: вывод всегда имя файла: содержимое. Найдите «три» файл1 <один, два, три, четыре, три>файл2. (5 ответов)

Обсуждение начато: Timm��

6. Программирование оболочки и создание сценариев

Мне нужно найти одну команду из нескольких файлов и распечатать тот файл, который содержит нужный com

Привет всем, мне нужна ваша помощь .. У меня есть несколько файлов в каталоге, и я узнал слово Rcopy из этих файлов, и мне нужно распечатать те файлы, которые содержат слово Rcopy. Спасибо и с уважением, Виджай Саху (2 ответа)

Обсуждение начато: vijays3

7. Программирование оболочки и создание сценариев

печатать содержимое любого файла в течение некоторого периода времени

Привет, можно ли распечатать содержимое любого файла (скажем, файлы журнала, которые автоматически увеличиваются) в течение некоторого периода времени (по сравнению с текущим временем), скажем, распечатать содержимое добавленного в: 1) последние 2 часа 2) последние 45 минут 3) последние 3 часа 47 минут (3 ответа)

Обсуждение начато: fed.linuxgossip

8. Программирование оболочки и создание сценариев

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

Обсуждение начато: rmsagar

9. Программирование оболочки и создание сценариев

найти содержимое во многих файлах и распечатать этот файл с помощью сценария оболочки

Здравствуйте, есть файл1 H87I Y788O T347U J23U и файл2 J23U U887Y I99U T556U файл3 I99O J99T F557J файл4 N99I T666U R55Y файл5 H87I T347U файл6 H77U R556Y E44T файл7 Y788O K98U H8I Мы можем использовать скрипт для поиска всех файлов, которые мы можем использовать файл1 и иметь выходной файл H87I5. (3 ответа)

Обсуждение начато: cdfd123

10. Программирование оболочки и создание сценариев

команда ls для печати fifo содержимого (или perl)

Здравствуйте! Какие есть варианты печати содержимого каталога в порядке FIFO? Я искал на форуме что-то относительно этого вопроса и не нашел ответов. Если есть способ подскажите пожалуйста, если на него уже отвечали дайте ссылку на пост. Поочередно если. (1 ответ)

Читайте также: