Как переместить строки, содержащие определенные строки, в начало файла?

Я думаю, что этот ответ поможет вам узнать больше о TTYs, активированном в вашей Системе, вы должны выполнить эту команду:

 systemctl list-units | grep getty

результат даст вам активный TTYsв вашей системе, после этого выполните Alt + Ctrl + F2 затем Alt + Ctrl + F7 или Alt + F7 и повторите команду systemctl list-units | grep getty, которую вы должен увидеть TTY2, активированный, как с выводом, подобным этому:

getty@tty1.service     loaded active running   Getty on tty1
getty@tty2.service     loaded active running   Getty on tty2

, если у вас нет чего-то подобного, подтверждающего, что ваш getty.serviceне активирован, и вы должны загрузить его и включить.

1
16.05.2019, 13:21
3 ответа

попробуйте с:

<file gawk '/_005/,/_007/ {
  top[i++]=$0
  next
}
{
  botom[j++]=$0
}
END {
  for(k in top)
    print top[k]
  for(k in botom)
    print botom[k]
}'
0
28.01.2020, 00:11

С помощью GNU sedвместе с включенным механизмом расширенных регулярных выражений мы можем решить эту проблему. Пространство удержания содержит все строки, которые необходимо переместить на север, а пространство шаблона содержит несовпадающие строки.

$ sed -Ee '
    /_005|_007/{
      /\n/!{
        H;$!d;g;s/.//;b
      }
      G
      s/(.*\n.*)(\n.*)(\n\n.*)/\1\3\2/
      h;s/.*\n(\n)/\1/
      x;s/\n\n.*//
      $bend
      s/^/\n/;D
    }
    $bend
    N;s/^/\n/;D
    :end
    x;G;s/.//
' input.txt

Perl поддерживает два массива для хранения совпадающих и несовпадающих строк:

$ perl -ne 'push @{/_005|_007/ ? \@A : \@B}, $_}{print @A, @B' input.txt
0
28.01.2020, 00:11

сначала catстроки с совпадающим шаблоном, затем строки с возвратом совпадающего шаблона:

cat <(grep -x 'XXX_00[57]' infile) <(grep -xv 'XXX_00[57]' infile)

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

0
28.01.2020, 00:11

Теги

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