Как я могу узнать, подключился ли кто-то к моей машине удаленно?

Perl

Slurp tasks.txt и просмотрите строки, начинающиеся с TODO , и найдите ближайший D / , и мы даже можем перепрыгнуть через новые строки, чтобы в этом возникает необходимость. м // с .

Новая особенность заключается в том, что если бы мы запускали эту вещь во второй раз, то сгенерированные файлы *. Txt не добавлялись, а запускались заново при каждом запуске. Следовательно, по своей конструкции они никогда не столкнутся с синдромом беглого размера.

perl -MFatal=open -l -0777ne '
  do{open my $fh, $h{$2}++ ? ">>" : ">", "$2.txt"; print $fh $1 =~ y/\n/ /rs}
     while m|\bTODO\s*(.+?)\s*D/(\S+)|sg' tasks.txt

sed + ed

Как обычно в таких случаях, мы динамически создаем код ed для получения вывода. Что нового в этом сценарии, так это то, что файл данных, с которым будет работать код ed , сам динамически генерируется из того же ввода.

Это похоже на то, что данные + код находятся внутри файла data.txt, который разделяется, а затем объединяется в качестве входных данных ed для генерации вывода из ed .

sed -n '
   /TODO/!d
   :l
   /D\//bw
   N
   bl
   :w
   s/.*TODO *//
   s/\n/ /g
  #<----------------------- ORIG --------------------->#

   H;s| *D/.*||w /tmp/data.txt
   g;s/.*\n//;x;s/\(.*\)\n.*/\1/;x

   G;s/\n/&&/
   h
   / *D\/\(.*\)\n\(\(.*\n\)\{0,\}\)\1\n/!{
   s/.*[^ ] *D\/\(.*\n\)\n/\1/
   x
   s/\n\n.*//
   s|\(.*[^ ]\) *D/|/\1/w |;s|$|.txt|p;$!d;s/.*/q/p;q
   }

   g
   s/\n\n.*//
   s|\(.*[^ ]\) *D/|/\1/W |;s|$|.txt|p;$!d;s/.*/q/p;q
' tasks.txt | ed -s - /tmp/data.txt

Предупреждение:

Убедитесь, что имя человека, которому назначена задача, не называется «задачи».

2
22.09.2015, 21:47
0 ответов

Теги

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