Как разделить долгое sed выражение на несколько строк?

Попытайтесь загрузить свое ядро с

radeon.audio=1

т.е. добавьте его к своей строке начальной загрузки Личинки.

14
28.07.2014, 13:06
4 ответа
sed 's'/\
'[long1]'\
'[long2]'\
'/'\
'[long3]'\
'[long4]'\
'/' file.txt

Разделение на несколько строк с помощью обратной косой черты работает, если новые строки не имеют отступа.

$ echo "a,b" | sed 's/\(.'\
> '\),\(.\)/\2-\1/'
b-a

Протестировано на Cygwin с GNU sed 4.2.2

8
27.01.2020, 19:50

Вы можете сохранить длинную строку в переменные bash, а затем использовать в команде sed:

string=[long1][long2]
replace= [long3][long4]
sed -e 's/'"$string"'/'"$replace"'/' file

Если вы можете использовать perl, вы можете разбить длинный шаблон с помощью модификатора x:

perl -e 's/
[long1]
[long2]
/[long3][long4]/x' file
8
27.01.2020, 19:50

Вы также можете разбить это следующим образом:

sed '/[long1][long2]/
    s//[long3][long4]/'

Или, может быть, так:

sed "$(
    printf 's/[%s][%s]/[%s][%s]/' \
        long1 \
        long2 \
        long3 \
        long4
)"

Или с наследником:

sed -f - <<SED file.txt
s/\
[long1]\
[long2]\
/\
[long3]\
[long4]\
/
SED
4
27.01.2020, 19:50

Другой аспект:

Насколько удобны в обслуживании [long] элементы, указанные выше?

Чем короче и четче вы можете сохранить предложения, тем легче их будет изменить и улучшить с течением времени передает и (sed-external) факты меняются в зависимости от предоставляемой ими функции.

например.

sed \
-e 's/[minimal-s1]/[minimal-r1]/' \
-e 's/[minimal-s2]/[minimal-r2]/' \
-e 's/[minimal-s3]/[minimal-r3]/' \
-e 's/[minimal-s4]/[minimal-r4]/' 

... может быть, к чему нужно стремиться и что отдавать предпочтение.

6
27.01.2020, 19:50

Теги

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