Добавить строку в файл linux
Я пишу bash-скрипт для поиска файла, если он не существует, затем создайте его и добавьте к нему:
Так что "line then new line 'tab' then text" я думаю, что это чувствительный формат. Я знаю, что вы можете сделать это:
Но это кажется странным, так как его две строки. Есть ли способ добавить это в этом формате:
Если для записи в файл необходимы sudo (другие привилегии пользователя), используйте это:
@TheLegend Это называется «документ здесь». Посмотрите на этот абзац на странице руководства. Еще одна возможность ( echo "line 1" ; echo "line 2" ) >>greetings.txt . @ ott-- Вам не нужен настоящий подоболочек (то есть, вы можете сохранить один новый процесс), этого достаточно: < echo "line 1" ; echo "line 2"; >>>greetings.txt @cikatomo В просто случайная строка. Может быть тоже. cat <<EOT EOT cat <<FOOИли, если вам нужна буквальная вкладка (а не четыре пробела в вашем вопросе):
Вы можете достичь того же эффекта с echo , но точно, как варьируется от реализации к реализации, в то время как printf является постоянным.
Другой подход заключается в использовании tee
Несколько строк выбора со tee страницы руководства пользователя:
Утилита tee копирует стандартный ввод в стандартный вывод, делая копию в ноль или более файлов.
-a - Добавляет вывод к файлам, а не перезаписывает их.
SED может добавить строку в конец файла следующим образом:
sed -i '$ a text to be inserted' fileName.file
$ выбирает конец файла, a сообщает ему добавить, и после этого следует текст, который нужно вставить. Тогда конечно имя файла.
Есть ли у этого подхода какие-либо дополнительные преимущества по сравнению с другими решениями?
Да, этот подход имеет дополнительное преимущество, заключающееся в добавлении любых файлов, возвращаемых при поиске, например: find . -name "*.html" -exec sed -i '$ a </html>' <> \;
Я использовал приведенный выше пример, чтобы вставить конечный HTML-тег, который отсутствовал на каждой HTML-странице в нескольких каталогах.
В Bash есть несколько способов добавить текст в файл. Эта статья объясняет некоторые из них.
Добавить в файл с помощью оператора перенаправления ( >> )
Перенаправление позволяет захватывать выходные данные команды и отправлять их в качестве входных данных в другую команду или файл. Оператор перенаправления >> добавляет вывод в указанный файл.
Существует ряд команд, которые вы можете использовать для вывода текста на стандартный вывод и перенаправления его в файл, причем наиболее часто используются команды echo и printf .
Чтобы добавить текст в файл, укажите имя файла после оператора перенаправления:
При использовании с параметром -e команда echo интерпретирует экранированные символы обратной косой черты, такие как новая строка n :
Чтобы получить более сложный вывод, используйте команду printf которая позволяет вам указать форматирование вывода:
Например, вы можете передать содержимое команде cat и добавить его в файл:
Вы можете добавить вывод любой команды в файл. Вот пример с командой date :
При добавлении к файлу с использованием перенаправления будьте осторожны, чтобы не использовать оператор > для перезаписи важного существующего файла.
Добавить в файл с помощью команды tee
По умолчанию команда tee перезаписывает указанный файл. Чтобы добавить вывод в файл, используйте tee с параметром -a ( --append ):
Если вы не хотите, чтобы tee выводил данные на стандартный вывод, перенаправьте его на /dev/null :
Преимущество использования команды tee перед оператором >> заключается в том, что tee позволяет добавлять текст сразу в несколько файлов и записывать в файлы, принадлежащие другим пользователям, вместе с sudo .
Чтобы добавить текст в файл, в который у вас нет прав на запись, добавьте sudo перед tee как показано ниже:
tee получает вывод команды echo , повышает разрешения sudo и записывает в файл.
Чтобы добавить текст в несколько файлов, укажите файлы в качестве аргументов команды tee :
Выводы
В Linux для добавления текста в файл используйте оператор перенаправления >> или команду tee .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Чтобы добавить текст в файл, вам необходимо иметь права на запись в него. В противном случае вы получите ошибку «permission denied».
Добавить в файл с помощью оператора перенаправления ( >>)
Перенаправление позволяет вам захватывать выходные данные из команды и отправлять их в качестве входных данных для другой команды или файла. Оператор перенаправления >> добавляет вывод к данному файлу.
Чтобы добавить текст в файл, укажите имя файла после оператора перенаправления:
При использовании с параметром -e команда echo интерпретирует символы с обратной косой чертой, такие как символ новой строки \n:
Если вы хотите создать более сложный вывод, используйте команду printf, которая позволяет указать форматирование вывода:
Например, вы можете передать содержимое команде cat и добавить его в файл:
cat « EOF » file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Вы можете добавить вывод любой команды в файл. Вот пример с командой date:
При добавлении в файл с помощью перенаправления будьте осторожны, чтобы не использовать оператор > для перезаписи существующего существующего файла.
Добавить в файл с помощью команды tee
Команда tee утилита командной строки в Linux, которая читает из стандартного ввода и записывает как в стандартный вывод, так и в один или несколько файлов одновременно.
Читать Использование команды SCP для безопасной передачи файлов в LinuxЕсли вы не хотите tee использовать в стандартном выводе, перенаправьте его на /dev/null:
Преимущество использования команды tee над оператором >> заключается в том, что tee вы можете добавлять текст в несколько файлов одновременно и записывать файлы, принадлежащие другим пользователям вместе с sudo.
Чтобы добавить текст в файл, на который вы не имеете права на запись, добавьте sudo до tee как показано ниже:
tee получает выходные данные команды echo, повышает разрешения sudo и записывает в файл.
Чтобы добавить текст в несколько файлов, укажите эти файлы в качестве аргументов команды tee:
Вывод
В Linux, чтобы добавить текст в файл, используйте оператор >> перенаправления или команду tee.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Команда cat представляет собой инструмент Unix, используемый для управления и отображения содержимого файлов. Команда получила свое название от слова «concatenate», потому что, помимо прочего, она может объединять файлы.
В этой статье мы рассмотрим несколько простых способов использования этой команды для записи текста в файл с примерами. Использование cat очень простое, поэтому для продолжения работы не требуется никакого предварительного программирования или опыта работы с Unix.
Основы команд cat
Начнем с того, что мы просто опишем основы команды cat , чтобы помочь вам, если вы никогда не использовали ее раньше или вам нужен краткий обзор.
Синтаксис
Синтаксис выглядит так:
Чтобы быстро найти синтаксис или параметры команды, запустите cat с параметром справки:
Или, вы можете использовать:
Эти команды должны отображать следующий список параметров:
Отображение содержимого файла на стандартном выводе
Чтобы вывести содержимое файла на стандартный вывод, просто назовите файл, который хотите отобразить:
Если файл находится в другом каталоге, вам нужно указать его:
Мы ожидаем увидеть содержимое этого файла, распечатанное на стандартный вывод, в данном случае - терминал:
Это наиболее распространенное использование команды cat, поскольку она позволяет легко просматривать содержимое файла, не открывая текстовый редактор.
Запись текста в файл с помощью cat
Это приведет к замене содержимого filename2 на содержимое filename1 , поэтому убедитесь, что он не содержит ничего, что вы бы не хотели потерять. Теперь filename2 содержит:
Оператор перенаправления вывода перенаправит вывод любой вызываемой нами команды. Например, давайте попробуем это с помощью команды pwd , которая печатает имя текущего рабочего каталога:
Если мы посмотрим сейчас на testfile :
Он содержит путь к текущему рабочему каталогу:
Если файл, на который вы перенаправляете, не существует, будет создан файл с таким именем:
Объединение файлов с помощью cat
Объединить несколько файлов с помощью cat очень просто - просто перечислите файлы в желаемом порядке:
Этот код берет файлы filename1 и filename2 , сцепляет их и выводит на новый outputfile :
Стандартный ввод между файлами
Когда имя входного файла отсутствует в списке, cat начинает чтение со стандартного ввода до тех пор, пока не достигнет EOF (конца файла). Сигнал о конце файла отправляется ctrl+d в командной строке:
Мы даже можем добавить текст из стандартного ввода между файлами, которые мы хотим объединить, используя - , чтобы указать, где мы ожидаем стандартный ввод. Если у нас есть такие файлы, как filename1 , filename2 и filename3 , и нам нужен текст из стандартного ввода между filename1 и filename2 , мы должны написать:
Проверив output , мы увидим что-то вроде:
Добавление файлов с помощью cat
В предыдущих примерах использование оператора перенаправления отбрасывало предыдущее содержимое файла output . Что, если мы хотим добавить новый контент к старому? Для добавления файлов мы используем оператор >> :
И это должно привести к:
Объединение содержимого всего каталога файлов с помощью cat
Чтобы объединить все содержимое всех файлов в каталоге, мы используем подстановочный знак * :
Чтобы объединить все содержимое всех файлов в текущем рабочем каталоге, мы будем использовать:
* также можно использовать для объединения всех файлов с одинаковым расширением:
Перечисление номеров строк
Перечисление всех строк вывода осуществляется с помощью опции -n :
Что бы написать что-то вроде:
Напишите $ в конце каждой строки
В опции -E знаменует конец каждой строки в файле с $ :
Сортировка строк составных файлов по конвейеру
Это немного обман. Команда cat не может сортировать, но для этого мы можем использовать конвейер. Команда канала ( | ) используется для превращения вывода одной команды во ввод другой. Чтобы отсортировать строки файла, мы будем использовать обе cat и еще одну команду sort :
Вывод
Cat - это простой, но мощный инструмент Unix, который предустановлен в большинстве систем. Его можно использовать отдельно или в сочетании с другими командами с помощью каналов. Первоначально созданный Кеном Томпсоном и Деннисом Ритчи в 1971 году, cat простой в использовании и интуитивно понятный функционал выдерживает испытание временем.
В этой статье мы изучили некоторые возможности использования команды cat для записи текста в файлы, проверки содержимого, объединения и добавления файлов, а также для перечисления строк и их сортировки.
Читайте также: