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

Как добавить строку в файл 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/'

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

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

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

Содержимое действительно для всех дистрибутивов Linux.

Все инструкции содержат настоящие скриншоты, чтобы любому пользователю Linux было легко их понять и применить.

Добавление строки в конец файла, не требующего прав суперпользователя

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

Для начала я создал файл с именем linux-consoleaddline. Чтобы увидеть его содержимое, я буду использовать команду less, как показано на рисунке ниже.

less linux-consoleaddline

Как вы можете видеть ниже, файл содержит 3 строки: «строка 1», «строка 2» и «строка 3».

Синтаксис для добавления строки в конец файла следующий: «Содержимое строки» — это текст, который вы хотите добавить, а «Файл» — это файл, который нужно добавить. который вы хотите добавить строку.

echo ‘Line Content’ >> File

Поэтому, если я хочу добавить «строку 4» в файл linux-consoleaddline, я выполняю команду, показанную на следующем снимке экрана:

echo ‘line 4’ >> linux-consoleaddline

Я хочу проверить файл, чтобы убедиться, что строка была правильно добавлена.

less linux-consoleaddline

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

Существуют разные способы добавления линий. Вы также можете использовать команду printf. Синтаксис следующий:

printf «Line Content» >> File

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

printf «line 5» >> linux-consoleaddline

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

cat linux-consoleaddline

Строка успешно добавлена.

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

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

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

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

echo ‘line 5’ >> / root / linux-consoleaddline

Синтаксис для добавления строк в файлы с привилегиями root или sudo следующий:

sudo sh -c «echo ‘Line Content’ >> /path/file»

В этом примере я хочу добавить текст «строка 5» в файл /root/linux-consoleaddline. Для этого я использую описанный выше синтаксис, как вы можете видеть на рисунке ниже.

sudo sh -c «echo ‘line 5’ >> /root/linux-consoleaddline»

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

sudo less / root / linux-consoleaddline

Как вы можете видеть ниже, строка была правильно добавлена.

Другой способ прочитать новую строку и записать ее в файл — объединить команду echo с tee через канал. Синтаксис следующий:

echo ‘File Content’ | sudo tee -a linux-consoleaddline

Поэтому, если я хочу добавить строку «line 6» с привилегиями, я набираю команду, показанную на рисунке ниже.

echo ‘line 6’ | sudo tee -a / root / linux-consoleaddline

Чтобы проверить, правильно ли добавлена строка, я снова запущу команду less, за которой следует путь.

sudo less / root / linux-consoleaddline

И, как видите, строка была добавлена.

Вот как вы можете легко добавлять строки в конец файлов в Linux.

Заключение:

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

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

Записать строку в конец файла 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, то как это сделать можно прочитать здесь.

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

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

«Добавить» означает добавление данных в файл без стирания доступных в данный момент данных. Чтобы добавить строку в файл, вы можете использовать различные команды, такие как 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-2024

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

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