Рейтинг:0

Мне нужно вставить 12 пробелов. Он должен соответствовать определенной строке, а затем переходить к следующей строке с 12 пробелами.

флаг ca

У меня есть файл с именем space.txt. Я выполняю сопоставление строк с ath2. Мне нужно вставить строку «newdata» после 12 пробелов. Я попробовал приведенную ниже команду, которая работает, но использовал ручные белые 12 пробелов. Как этого можно добиться другим способом?

sed -e "/ath2/a\ новые данные" space.txt

Мне нужен такой вывод

unix@BDC8-LX-CVZ52X2:~/12space$ кошачий пробел
ath1
ат2
            новые данные
ат3
ат4
ath5
David avatar
флаг cn
Очень похоже на домашнее задание.
флаг ca
Это требование. Я подправил данные, чтобы они были простыми. Я использую команду, которая работает определенным образом, но я не хочу идти по этому пути, поскольку она не является стандартной. Если вы поняли вопрос, не могли бы вы мне помочь?
pLumo avatar
флаг in
Какая это версия Ubuntu?
pLumo avatar
флаг in
Я думаю, что вам не следует пытаться сделать его слишком простым, так как мы не видим в этом преимуществ. Вы должны объяснить в вопросе, почему вы хотите это сделать, чтобы мы могли дать правильный ответ. Например. вы можете легко создать n пробелов, например. с помощью `printf`, но для вашего примера это будет сложнее, чем просто писать пробелы внутри `sed`.
Рейтинг:2
флаг in

Ты можешь использовать printf для создания пробелов:

sed -e '/ath2/a\'"$(printf %012s)"'newdata' "space.txt"
Рейтинг:1
флаг bd

Это то, что вы хотите:

sed "/ath2/a$(printf '\%12s')newdata" пространство
pLumo avatar
флаг in
разве это не то же самое, что и мой ответ?
Wayne Vosberg avatar
флаг bd
Да - я думаю, вы первыми нажали на пост.
флаг ca
@Wayne: Точно. Это то, что я хотел. Большое тебе спасибо. sed "/ath2/a$(printf '\%12s')newdata" это решило мою проблему.
флаг ca
@pLumo: Фактическое требование: мне нужно вставить «SystemCgroup = true» в файл toml, поскольку я устанавливаю cgroupdriver в systemd. Требуется отступ, он должен соответствовать строке runc.options и переходить на следующую строку с 12 пробелами. То, что дал Уэйн, идеально соответствует моему требованию. Большое спасибо!!
pLumo avatar
флаг in
который точно такой же, как мой ответ, но через 2 минуты...

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

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