Рейтинг:0

Как сохранить вывод команды в определенную строку текстового файла

флаг dk

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

Я искал в Интернете около часа об этой проблеме, но не нашел подходящего ответа.

Например:

Я хочу сохранить вывод некоторых лс команда на 7-ю строку пример.txt. (вставить новую строку)

Как бы я это сделал?

Заранее спасибо.

HuHa avatar
флаг es
Это может быть то, что вам нужно: https://unix.stackexchange.com/questions/70878/replacing-string-based-on-line-number
флаг hr
Вы хотите перезаписать существующую 7-ю строку? или вставить новую строку до или после нее?
カラス avatar
флаг dk
@steeldriver вставь новый
Рейтинг:2
флаг hr

Вы можете использовать sed р команда для чтения и вставки вывода команды после заданного адреса.В частности, GNU sed предоставляет специальное имя файла /dev/стандартный ввод для чтения данных из стандартного ввода.

Так, например, дано

$ кошка пример.txt
Линия 1
Линия 2
Линия 3
Линия 4
Строка 5
Строка 6
Линия 7
Строка 8
Строка 9
Строка 10

тогда

$ ls -l пример.txt | sed -i '7r/dev/stdin' пример.txt

приводит к

$ кошка пример.txt
Линия 1
Линия 2
Линия 3
Линия 4
Строка 5
Строка 6
Линия 7
-rw-r--r-- 1 steeldriver steeldriver 71 июн 28 15:52 example.txt
Строка 8
Строка 9
Строка 10

Если вы хотите, чтобы вывод команды был вставлен перед 7-ю строку, затем прочитайте и вставьте ее после 6-й.

カラス avatar
флаг dk
Оно работает! Спасибо большое.

Ответить или комментировать

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