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