Открытие URL-адреса с помощью xdg -открыть с помощью удаленного протокола Mozilla

#!/usr/bin/perl

use File::Slurp;

# read d.txt and turn into a regular expression.
my $re = '^('. join ('|',read_file('./d.txt', chomp => 1)). ')$';

# read input files and print location of matches.
while (<>) {
  for (my $i=0;$i <= length; $i++) {
    printf "%s\n", $i+1 if (substr($_,$i,1) =~ m/$re/o);
  }
}

Этот perl-скрипт печатает позиции каждого `символа D' и 'O' во входных строках.

Сохранить как, например. islem.pl, сделайте его исполняемым с помощью chmod +x islem.plи запустите его так:

$./islem.pl nohd*.txt
12
22
24
35
10
11
12
13
14
15
16
17
18
19
20
21
22

Приведенный выше вывод получен при сохранении данных сэмпла как nohd1.txt.


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

#!/usr/bin/perl -l

use File::Slurp;

# read d.txt and turn into a regular expression.
my $re = '^('. join ('|',read_file('./d.txt', chomp => 1)). ')$';

# read input files and print location of matches.
while (<>) {
  my $count=0;
  for (my $i=0;$i <= length; $i++) {
    $count++ if (substr($_,$i,1) =~ m/$re/o);
  };
  print $count;
}

Пример вывода:

$./islem2.pl nohd*
4
13

Это легко адаптируется ко многим вариациям. Например, если вы хотите напечатать имя файла и номер строки вместе с соответствующим счетчиком в формате :с разделителями:

#!/usr/bin/perl -l

use File::Slurp;

# read d.txt and turn into a regular expression.
my $re = '^('. join ('|',read_file('./d.txt', chomp => 1)). ')$';

# read input files and print location of matches.
while (<>) {
  my $count=0;
  for (my $i=0;$i <= length; $i++) {
    $count++ if (substr($_,$i,1) =~ m/$re/o);
  };
  print "$ARGV:$.:$count";
} continue {
  # explicitly close the current file on eof to reset the line counter
  # after each input file because perl only has a cumulative line
  # counter ($.) rather than both FR and FNR like awk.
  close ARGV if eof;
}

Пример вывода:

$./islem3.pl nohd*.txt
nohd1.txt:1:4
nohd1.txt:2:13
5
29.05.2020, 19:35
3 ответа

Я ничего не могу сказать о спецификации, но поскольку важен только результат, я (не знаком с цитированием в таких файлах, хотя )ожидаю, что это сработает:

Exec=bash -c 'echo seamonkey openURL"($1)"' seamonkey-wrapper %u%
4
28.04.2021, 23:14

Использование шаблона переменных с начальными и конечными процентными символами кажется мне -очень похожим на DOS, в документе спецификации freedesktop references упоминаются только начальные символы.

Согласно документации опции Mozilla Remote Control , команда openURLявляется аргументом опции -remote. Запуск командной строки Exec из оболочки не работает без этой опции. Успешно протестировано с seamonkey 2.49.5 на Fedora.

Не хотите попробовать Exec=seamonkey -remote openURL(%u)?

0
28.04.2021, 23:14

Недавно у меня была эта проблема, и есть спецификация. здесь

Если %для приложения, нужно поставить %%. Это на будущее, при создании файла.desktop для youtube -dl и использовании опции --output. В вашем случае вам, вероятно, нужно избежать фигурных скобок. \(\), потому что их оценивает оболочка. Установите опцию terminal=true, вы увидите сообщение об ошибке (.

Или попробуйте :seamonkey 'openURL(%u)'seamonkey "openurl\$'0028'%u\$'0029'"

Осторожно! Раньше у меня были проблемы с ', а "работает. Но только 'означает буквальное без какой-либо интерпретации/расширения. IIRC, вам не нужно помещать переменную в кавычки, так как она уже будет заключена в кавычки.

3
28.04.2021, 23:14

Теги

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