LINUX.ORG.RU

Сообщения yuranp

 

Grep после обработки файла теряет переносы строк

Подскажите пожалуйста, как сделать что бы результаты обработки grep'ом выводились с сохранением пробелов и переносов строк?

Команда:

echo `cat v.txt` | grep -Po "(?<=(mama)).*(?=papa)"
Вывод с неё сейчас в одну строку:
 vasya petya kolya grisha
Сам файл выглядит так:
cat v.txt
mama
 vasya
   petya
kolya
grisha
papa

 , ,

yuranp
()

Как перед заменой выполнить поиск между определенными словами?

Задача примерно такая: У меня есть файл apache2.conf и я пытаюсь добавить в vitualhost сайта определенную строку, не удаляя другие.

Сейчас разбираюсь с perl, нашел пример с заменой, но он полностью стирает всё что найдено между ServerName и </VirtualHost> , а мне нужно хотя бы дописать, или в идеале: Найти в apache2.conf нужный virtualhost: ServerName $domain и </VirtualHost> , удалить строку начинающуюся с «ScriptAlias /php-bin/» и добавить свою строку «ScriptAlias /php-bin/ /нужный_путь/»

Нашел скриптик на гитхабе, но он удаляет всё что было в virtualhost, а потом добавляет то что нужно. Хотелось бы что бы не удалял.

Сам скрипт:

my $apacheconf = '/etc/apache2/apache2.conf';
    open(my $fh, '<:encoding(UTF-8)', $apacheconf);	
  
    my $newtext = "\n\tScriptAlias /php-bin/ /var/www/"."$user"."\n";

    my $find = "/var/www/$user/data/www/$domain";
    
    my $str = "";

    while (my $rowa = <$fh>) {
      chomp $rowa;
      $str .= "$rowa\n";
    }
    close $fh;
    my $string = $str;
    $string =~ s/(ServerName $domain).*?(\<\/VirtualHost\>)/$1$newtext$2/gis;

То есть задача у меня такая: Найти определенный virtualhost, удалить из него строку начинающуюся с ScriptAlias и добавить строчку из $newtext

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

perl -ni -e 'print unless /ScriptAlias \/php-bin\//' $результат_поиска_между_ServerName_и_virtualhost

 , , ,

yuranp
()

Debian, grub грузит старое ядро

Здравствуйте, подскажите пожалуйста как загрузиться с нового ядра.. Обновил Debian 6 до 8-й версии, но после перезагрузки ядро 2.6.32 запускается. Ядро 3.16.0-4 стоит выше в grub.cfg, но что конкретно на экране загрузчика нет возможности увидеть, сервер в Hetzner.

В /etc/default/grub: GRUB_DEFAULT=0

Generating grub configuration file ... /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. Found linux image: /boot/vmlinuz-3.16.0-4-amd64 Found initrd image: /boot/initrd.img-3.16.0-4-amd64 /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. Found linux image: /boot/vmlinuz-2.6.32-5-amd64 Found initrd image: /boot/initrd.img-2.6.32-5-amd64 /usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. done

 , ,

yuranp
()

RSS подписка на новые темы