Печатающие группы соответствия с grep

Какую версию Unix установить на VAX? Исходный Беркли UC Unix BSD? OpenBSD? NetBSD? Ultrix, если я могу получить легальную копию? Unix AT&T?

Я пошел бы с NetBSD, но существует также порт Linux, который может поддерживать 4000m90. Нет никакого порта FreeBSD.

Оригинал (4.x) BSD не имеет кода поддержки ЦП для этой модели, и ни один не делает Unix Ultrix и AT&T.

Существует ли путь к двойной загрузке между Unix и VMS?

Да - сохраняют их на отдельных физических дисках.

2
04.10.2013, 15:13
3 ответа
sed -n 's|.*href="\(http://[^"]*\)">Transcript.* - \([0-9]*\)\. \(.*\)</a>|\1:\2:\3|p'

Тот единственные работы, если существует только одна ссылка на строку.

С perl:

perl -lne 'print for m|href="(http://.*?)">Transcript.*? - (\d*)\. (.*?)</a>|g'
4
27.01.2020, 21:54

Собственное решение для удара могло бы работать на Вас. Это соответствует всей строке к регулярному выражению, так будет только работать с одной ссылкой на строку сценарии

pat='href="(http://.*)">Transcript.* - ([0-9]*)\. (.*)</a>'
while IFS= read -r line; do 
   [[ $line =~ $pat ]] && 
   echo "${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}"
done <file.txt
1
27.01.2020, 21:54

grep может только распечатать или целую строку или часть, которая соответствовала единственному шаблону (или имя файла, я предполагаю). Однако, так как Вы используете жемчуг regex, можно хотеть попробовать pcregrep, который имеет дополнительный дополнительный параметр к флагу-o, указывающему вводную группу для показа. Как в

sauer@humpy:~$ echo ab12cd34ef | pcregrep -o1 '.*?(\d+).*?(\d+).*'
12
sauer@humpy:~$ echo ab12cd34ef | pcregrep -o2 '.*?(\d+).*?(\d+).*'
34

К сожалению, Вы не можете указать несколько-o опций (вероятно, потому что Вам затем был бы нужен разделитель, и вещи станут ужасными). Но если Вы делаете что-то простое, я предполагаю, что Вы могли бы просто повторить pcregrep многократно.

Также обратите внимание, что не может быть никакого пространства между "o" и не соответствовать числу в команде с тех пор -o без аргумента ведет себя то же как регулярный grep.

Лично, я просто использовал бы жемчуг.

sauer@humpy:~$ echo ab12cd34ef | perl -plne 's/^.*?(\d+).*?(\d+).*$/$1:$2/'
12:34
1
27.01.2020, 21:54

Теги

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