Добавить слова в текстовый файл с помощью одной команды терминала (без редакторов)

Я новичок в Linux. Мне нужно отредактировать .conf только из открытого терминала и без использования текстовых редакторов. То есть можно ли добавлять слова и предложения в файл конфигурации с открытого терминала?

Пример: command /home/.../file.conf -add 'abcd' до 23-й линии и так далее. И, наконец, сохранить его.

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

5 ответов

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

echo "Hello you!" >> myfile.txt
echo "this is 2nd line text" >> file.txt
echo "last line!" >> file.txt

Вуаля! Ты понял. Важно отметить >> означает добавление новой строки в существующий файл > просто перезаписать все.

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

sed -i '23iabcd' file.conf

вставляет в строку 23 текст abcd в файл file.conf

-i вносит изменения непосредственно в файл file.conf,

Если вы хотите использовать awk затем:

awk -v n=23 -v s="abcd" 'NR == n {print s} {print}' file > file.conf

Следующее добавляет одну строку после SearchPattern.

sed -i '/SearchPattern/aNew Text' SomeFile.txt

Он вставляет новый текст на одну строку ниже каждой строки, содержащей SearchPattern.

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

 sed -i '/pattern/a \
line1 \
line2' inputfile

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

Чтобы добавить строки в ваш файл

$ printf "\nThis is a new line to your document" >> file.txt

Перезаписать файл

$ printf "This overwrites your file" > file.txt
awk '{if ($1 ~ /regex/) print $1 "content to be added"; else print $1}' < inputfile > outputfile

Заметки:

  • Регулярное выражение - это регулярное выражение (также известное как регулярное выражение), оно определяет критерии поиска. Регулярные выражения допускают очень настраиваемый поиск, а синтаксис, понятный awk, содержится в руководстве. В простейшем случае - ищите строку "как есть", символ за символом - просто ставьте обратную косую черту перед специальными символами (список специальных символов см. В руководстве)

Как это устроено:

  • открыть inputfile для чтения строк ввода очистите outputfile и откройте его для записи выходных строк
  • для каждой строки запустите блок в фигурных скобках:
    • если строка соответствует регулярному выражению, выведите строку с добавленным содержимым
    • в противном случае выведите ту же самую строку.

Я нашел решение своего собственного вопроса, используя ed команда

ed -s /home/.../abc.conf <<< $'23i\ntext\n.\nwq'

Текст может содержать 27 строк. Вы можете скопировать 27 строк из текстового файла и вставить 27 строк в ваш файл конфигурации. Но мне нужно запустить ed Команда одновременно, чтобы добавить больше текста в тот же файл конфигурации.

Другие вопросы по тегам