В этой статье мы рассмотрим различные способы добавления записи заголовка или записи подписи в файл.
Рассмотрим файл file1.txt
Добавление строки в начало файла (заголовок)
1. Чтобы добавить запись заголовка с помощью sed:
1 | sed '1i некоторый текст в начале' file1.txt |
"1i" в sed включает(i) строку некоторый текст в начале только перед первой строкой(1) файла. Приведенная выше команда выводит содержимое файла вместе с заголовком, не обновляя файл. Чтобы обновить сам исходный файл, используйте опцию -i в sed, как показано ниже:
1 | sed -i.bkp '1i некоторый текст в начале' file1.txt |
Опция -i.bkp создает резервный файл с именем file1.bkp перед внесением изменений в исходный файл. Расширение .bkp может быть любым на ваш выбор.
2. Вы также можете использовать этот пример sed для вставки строки заголовка:
1 | sed '1s/^/некоторый текст в начале\n/' file1.txt |
Символ "1s" указывает на номер строки, который будет совпадать только при выполнении замены командой 's'. Символ '^' указывает на начало строки. Также обратите внимание на возврат каретки '\n', добавленный в конце, который помогает напечатать новую строку после замены.
3. Вы также можете использовать команду cat с оператором bash printf для добавления строки в начало файла.
1 | printf '%b' 'некоторый текст в начале\n' | cat - file1.txt |
4. Чтобы добавить в файл запись заголовка, используйте awk:
1 | awk 'BEGIN{print "некоторый текст в начале"}1' file1.txt |
Оператор BEGIN в awk позволяет вывести некоторый текст в начале оператора перед обработкой файла, поэтому в выводе появляется заголовок. Символ 1 указывает на необходимость печати каждой строки файла.
Добавление строки в конец файла (подпись)
1. Самая простая из всех команд здесь - простое использование перенаправления для добавления строки в конец файла. Например:
1 | echo "некоторый текст в конце" >> file1.txt |
2. Чтобы добавить запись в файл с помощью sed:
1 | sed '$a некоторый текст в конце' file1.txt |
Знак $a заставляет sed добавлять(a) утверждение "некоторый текст в конце" только после последней строки($) файла.
3. Чтобы добавить запись в файл с помощью awk:
1 | awk '1;END{print "некоторый текст в конце"}' file1.txt |
Метка END заставляет оператор печати вывести только после обработки файла. Метка 1 означает печать каждой строки. 1 фактически означает true.