как заменить строку (значение переменной) в одной из строк между двумя шаблонами и для нескольких файлов

В моем случае (ubuntu 16.04 )мне нужно только перезапустить службу teamviewerd, а затем графический интерфейс teamviewer перезапустить с состоянием «готов к подключению».

0
07.11.2019, 09:09
1 ответ

Это

G
/^(.).*\n\1/    { P; d }
s/^(.)(.*)\n.*/\1\n\1\2/
p
s/^(.)\n.*/\1/
h

— это программа sed, которая может служить источником вдохновения. Он делает это:

]# cat infile 
alpha
and
alas
arc
fat
foo
zoo
boat
bee
bed

]#./letter-group.sed infile 
a
alpha
and
alas
arc
f
fat
foo
z
zoo
b
boat
bee
bed

Это требует некоторых изменений, но я думаю, что основная идея может быть использована повторно. info sedдля получения подробной информации.


#!/bin/sed -Enf

# Insert a title line (group header) when first letter changes
#
#
# If first letter stays the same, just print input line and exit
#
G
/^(.).*\n\1/    { P; d }


# new letter: move it to first line, and print
#
s/^(.)(.*)\n.*/\1\n\1\2/
p

# hold the new letter
s/^(.)\n.*/\1/
h

Здесь вы видите все эти элементы :s///, \1и держите/получаете. Если вы придумаете какие-нибудь интересные спецификации, я могу попытаться адаптировать их, но этот пример немного суховат.

0
28.01.2020, 03:08

Теги

Похожие вопросы