Где rsync копирует файл, если я не укажу удаленный путь?

Если никогда не бывает более двух последовательных экземпляров pattern, и у вас есть GNU sed, тогда:

sed '/^pattern/ {$!N; /\n[0-9]/b; s/$/\n1000/M}' file
pattern.d
17.91
17.55
pattern.b
1000
pattern.a
7.21
9.34
pattern.c
1000

Как это работает:

  • если текущая строка начинается с pattern, то
    • при условии, что мы не в EOF, добавить следующую строку
    • , если после новой строки следует цифра (это можно сделать более конкретным), то bранжировать (т.е. перейти к следующей строке ); else
    • замените первую строку, заканчивающуюся новой строкой, и 1000

Модификатор M, специфичный для GNU, позволяет $соответствовать либо \nили $, чтобы он обрабатывал как «обычный» случай, так и случай EOF, когда не добавляется следующая строка.

1
14.09.2017, 01:01
0 ответов

Теги

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