Перейти к содержимому

Как добавить строку в файл linux

  • автор:

Как добавить строку в файл?

Подскажите пожалуйста простую команду, добавляющую в текстовый файл определенную строку перед строкой с номером N.

Nxx ★★★★★
23.12.10 16:34:24 MSK

Открываешь OpenOffice и правишь что нужно. Ваш К.О.

anonymous
( 23.12.10 16:43:01 MSK )

1) cat foo | head -n=N > bar 2) echo >> bar 3) cat foo | tail -n=+N >> bar 4) mv bar foo 5) . 6) PROFIT!

Alan_Steel ★★
( 23.12.10 16:45:19 MSK )

$ perl -i -pe 'print "hello, world!\n" if $. == 5' file.txt

здесь 5 — номер строки.

arsi ★★★★★
( 23.12.10 16:47:07 MSK )

marvin_yorke ★★★
( 23.12.10 16:50:00 MSK )
Ответ на: комментарий от Alan_Steel 23.12.10 16:45:19 MSK

#!/bin/sh # args: file_name, line_number, some_string head -n $(($2-1)) $1 > /tmp/tmp_crap echo $3 >> /tmp/tmp_crap tail -n $2 $1 >> /tmp/tmp_crap mv /tmp/tmp_crap $1 

anonymous
( 23.12.10 16:55:50 MSK )
Ответ на: комментарий от anonymous 23.12.10 16:55:50 MSK

> tail -n $2 $1

плюс перед $2 посеял, этак он выведет N строк с конца, а не с N по конец файла.

А в целом — красиво оформлено 😉

Alan_Steel ★★
( 23.12.10 16:59:29 MSK )

N=2; sed -e $N»s/^/Newline\n/» -i file

Bers666 ★★★★★
( 23.12.10 17:04:44 MSK )

Подскажите пожалуйста простую команду, добавляющую в текстовый файл определенную строку перед строкой с номером N.

sed '2iTEST STRING'

добавит TEST STRING перед 2й строкой.

drBatty ★★
( 23.12.10 17:06:00 MSK )

#!/bin/bash sed 4i\ 'Мама мылараму' test.txt >> out.txt mv -f out.txt password.txt rm -f out.txt 

Pterodaktil
( 23.12.10 17:07:33 MSK )
Ответ на: комментарий от anonymous 23.12.10 16:43:01 MSK

>Открываешь OpenOffice и правишь что нужно. Ваш К.О.

это не КО, а ламо.

добавит строчку перед 666й строкой. Но sed кошернее.

drBatty ★★
( 23.12.10 17:08:33 MSK )

LINE=10 STR="New string before line $LINE" awk -v l=$LINE s="$STR" 'NR == l ; ' input.txt > output.txt cat output.txt > input.txt rm output.txt 

sdio ★★★★★
( 23.12.10 17:08:44 MSK )
Ответ на: комментарий от drBatty 23.12.10 17:06:00 MSK

У тебя stdout — консоль. Надо перенаправить вывод в файл

Pterodaktil
( 23.12.10 17:09:53 MSK )
Ответ на: комментарий от Pterodaktil 23.12.10 17:07:33 MSK

sed -i 4i\ ‘Мама мылараму’ test.txt

stormy ★
( 23.12.10 17:10:28 MSK )
Ответ на: комментарий от drBatty 23.12.10 17:06:00 MSK

> sed ‘2iTEST STRING’
о самое простое, похоже =))

я по лумерски
N=3; STR=Hello ; sed -e «$N s/\(^.*$\)/$\n\1/» -i FILE_NAME

backbone ★★★★★
( 23.12.10 17:12:10 MSK )
Ответ на: комментарий от backbone 23.12.10 17:12:10 MSK

о самое простое, похоже =)) Только файлик не изменился

Pterodaktil
( 23.12.10 17:13:32 MSK )
Ответ на: комментарий от stormy 23.12.10 17:10:28 MSK

Nxx ★★★★★
( 23.12.10 17:19:27 MSK ) автор топика
Ответ на: комментарий от Pterodaktil 23.12.10 17:13:32 MSK

[code]sed -i[/code] или лучше без убийства старого [code]sed -i*.bak[/code]

В условии не написано где лежит текст, и куда его надо загнать.

drBatty ★★
( 23.12.10 17:23:07 MSK )
Ответ на: комментарий от drBatty 23.12.10 17:23:07 MSK

. добавляющую в текстовый файл..

stormy показал простое и элегантное решение

Pterodaktil
( 23.12.10 17:28:41 MSK )
Ответ на: комментарий от Pterodaktil 23.12.10 17:28:41 MSK

Чего в нём элегантного? 🙂

stormy ★
( 23.12.10 17:41:41 MSK )
Ответ на: комментарий от Pterodaktil 23.12.10 17:28:41 MSK

stormy показал простое и элегантное решение

/dev/stdout и /dev/stdin это тоже файлы. причём текстовые. я думал, что вы сами догадаетесь, как читать/писать файлы. и нет в решении stormy ничего элегантного — sed-скрипт вообще рваный, и непонятно, что и к чему относится. Кстати, наши решения с командой i ещё и не переносимы, надо писать так:

#!/bin/sed -f 2i\ Тестовая строчка

Вот ещё такой вариант. Для гуру:

sed -r 'N;N;N;N;N;N;s/(.*)(\n.*)/\1тестовая строка\n\2/'

Редактирование файла: добавление несуществующей строки в файл

Добавление строки или строки в файл иногда необходимо для изменения вывода без удаления существующих данных. Это ценный способ изменить файл, добавив несколько строк между существующими строками файла.

«Добавить» означает добавление данных в файл без стирания доступных в данный момент данных. Чтобы добавить строку в файл, вы можете использовать различные команды, такие как printf, echo, tee, cat и т. д.

Хотя добавить строку несложно, многим новичкам всегда требуются разъяснения. Итак, это руководство будет включать простые способы добавления несуществующей строки в файл.

Редактирование файла: добавление несуществующей строки в файл

Оператор «>>» может перенаправить вывод файла. Если упомянутый файл не существует, он автоматически создает его, а затем добавляет строку. С помощью этого оператора вы можете добавить новую строку в файл, используя несколько команд.

Вы будете печатать строки с помощью команд, а оператор «>>» напечатает эту строку в файле. Например, у нас есть файл Linux.txt, который содержит следующую информацию:

cat Linux.txt What does append mean in Linux? 

В этот файл мы добавим новую строку с помощью нескольких разных команд.

Команда printf

Команда printf позволяет записывать, форматировать и преобразовывать параметры аргументов в стандартный вывод. Сначала мы увидим, как добавить новую строку в файл с помощью оператора «>>» с командой printf —

printf " " >>

Давайте теперь добавим новую строку в файл Linux.txt, используя следующую команду:

printf "You can append a line through various commands in the terminal. " >> Linux.txt cat Linux.txt What does append mean in Linux? You can append a line through various commands in the terminal. 

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

Эхо-команда

Используя встроенную команду «echo», вы можете отобразить строку/строку текста в Linux, передав ее в качестве аргумента.

echo "" >>

Давайте попробуем еще раз добавить строку в Linux.txt –

echo "You can append a line through various commands in the terminal. " >> Linux.txt cat Linux.txt What does append mean in Linux? You can append a line through various commands in the terminal. 

Тройник команды

Команда «tee» в Linux считывает введенные данные и печатает их в один или несколько файлов. С помощью этой команды вы можете распечатать входные данные одного файла в другом файле. Более того, вы также можете использовать команду tee для прямой печати новой строки в файле.

cat | tee -a

Например, мы напечатаем содержимое файла «Info.txt» в файле «Linux.txt» с помощью этой команды. Здесь мы сначала принимаем строку, присутствующую в файле Info.txt, в качестве входных данных с помощью команды cat. Кроме того, мы передадим команду tee для печати этих входных данных в файле Linux.txt.

cat Info.txt | tee -a Linux.txt You can append a line through various commands in the terminal. cat Linux.txt What does append mean in Linux? You can append a line through various commands in the terminal. 

Кроме того, вы можете напрямую добавить новую строку в файл с помощью команды echo. Таким же образом можно распечатать строку с помощью команды echo, а затем передать ее по каналу с помощью команды tee.

echo "" | tee -a

В приведенной выше команде опция -a добавляет строку данного файла. Давайте реализуем эту комбинацию команд в файле —

echo "You can append a line through various commands in the terminal." | tee -a Linux.txt You can append a line through various commands in the terminal. cat Linux.txt What does append mean in Linux? You can append a line through various commands in the terminal. 

Кошачья команда

Мощная и универсальная команда cat в основном используется для отображения содержимого файла. Наряду с этим вы можете распечатать содержимое из одного файла в другой —

Здесь мы снова добавим содержимое файла «Linux1.txt» в файл «Linux.txt» с помощью команды cat.

cat Info.txt >> Linux.txt cat Linux.txt What does append mean in Linux? Append means simply add the data to the file erasing existing data. 

Заключение

Речь шла о простых способах добавления несуществующей строки в файл. Мы объяснили четыре метода добавления строки без изменения существующего вывода. Убедитесь, что вы используете все команды правильно, поскольку неподходящие команды иногда могут привести к ошибкам. Кроме того, вы можете узнать больше о Linux, посетив наш официальный сайт.

Все права защищены. © Linux-Console.net • 2019-2023

Как добавить текст в конец файла в Linux

При работе с файлами конфигурации в Linux иногда вам нужно добавить текст, например параметры конфигурации, в существующий файл. Добавить просто означает добавить текст в конец или конец файла.

В этой короткой статье вы узнаете о различных способах добавления текста в конец файла в Linux.

Добавить текст с помощью оператора >>

Оператор >> перенаправляет вывод в файл, если файл не существует, он создается, но если он существует, вывод будет добавлен в конец файла.

Например, вы можете использовать команду echo для добавления текста в конец файла, как показано ниже.

# echo "/mnt/pg_master/wal_archives 10.20.20.5(rw,sync,no_root_squash)" >> /etc/exports

В качестве альтернативы вы можете использовать команду printf (не забудьте использовать символ \n для добавления следующей строки).

# printf "/mnt/pg_master/wal_archives 10.20.20.5(rw,sync,no_root_squash)\n" >> /etc/exports

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

В следующем примере дополнительные общие ресурсы файловой системы, добавляемые в файл конфигурации /etc/exports, добавляются в текстовый файл с именем shares.txt.

# cat /etc/exports # cat shares.txt # cat shares.txt >> /etc/exports # cat /etc/exports

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

# cat /etc/exports # cat >>/etc/exports /backups 10.20.20.0/24(rw,sync) > /mnt/nfs_all 10.20.20.5(rw,sync) > EOF # cat /etc/exports

Внимание: не путайте оператор перенаправления > с >> ; использование > с существующим файлом удалит содержимое этого файла, а затем перезапишет его. Это может привести к потере данных.

Добавить текст с помощью команды tee

Команда tee копирует текст из стандартного ввода и вставляет/записывает его в стандартный вывод и файлы. Вы можете использовать его флаг -a для добавления текста в конец файла, как показано ниже.

# echo "/mnt/pg_master/wal_archives 10.20.20.5(rw,sync,no_root_squash)" | tee -a /etc/exports OR # cat shares.txt | tee -a /etc/exports

Вы также можете использовать здесь документ с командой tee.

# cat /backups 10.20.20.0/24(rw,sync) >/mnt/nfs_all 10.20.20.5(rw,sync) EOF

Вы также можете прочитать эти связанные статьи.

  1. Как запускать команды из стандартного ввода с помощью Tee и Xargs в Linux
  2. Изучите основы работы перенаправления ввода/вывода в Linux
  3. Как сохранить вывод команды в файл в Linux
  4. Как подсчитать количество вхождений слова в текстовом файле

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

Все права защищены. © Linux-Console.net • 2019-2023

Записать строку в конец файла linux

Как добавить строку в конец файла linux через командную строку ?

короткая ссылка на этот вопрос: close
спросил 9 лет назад

1 ответ

В консоли Linux записать строку в файл.

Для добавления строк в конец файла воспользоваться командай echo и знаком >> для перенаправления вывода в файл:

echo "this text will be added at the end off file info.txt" >> ~/Documents/info.txt

Другой пример bash добавления строки «nameserver 8.8.8.8» в файл /etc/resolf.conf:

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

Если же у вас не хватает прав для записи в файл:

-bash: /etc/resolv.conf: Permission denied

То можно выполнить запись строки в файл под sudo (root) с помощью команды sudo sh -c :

sudo sh -c "echo 'nameserver 8.8.8.8' >> /etc/resolv.conf"

Если вы хотите добавлять строку в файл не на bash, а на php, то как это сделать можно прочитать здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *