Добавить слова в текстовый файл с помощью одной команды терминала (без редакторов)
Я новичок в 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 Команда одновременно, чтобы добавить больше текста в тот же файл конфигурации.