Как по файловой структуре узнать, что определенный дистрибутив Linux основан на Debian? [дубликат]

Вы можете сделать это с помощью одного вызова sed :

sed -E 'H;g;:t;s/(.*)(\n)(.*)(\.)(.*)/\1\4\5\2\3/;tt;s/\.(.*)\n/\1./'

здесь используется буфер удержания, чтобы получить начальную новую строку в пространстве шаблонов и использовать ее для перестановок, пока за новой строкой не перестанет следовать какая-либо точка, в этот момент он удаляет начальную точку из пространства шаблона и заменяет новую строку точкой.
С BRE и немного другим регулярным выражением:

sed 'H
g
:t
s/\(.*\)\(\n\)\(.*\)\(\.\)\(.*\)/\1\4\5\2\3/
tt
s/\(\.\)\(.*\)\n/\2\1/'

Если ввод состоит из более чем одной строки и вы хотите изменить порядок в каждой строке:

sed -E 'G;:t;s/(.*)(\.)(.*)(\n)(.*)/\1\4\5\2\3/;tt;s/(.*)\n(\.)(.*)/\3\2\1/'
4
24.04.2015, 09:58
0 ответов

Теги

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