Опция -n
обрабатывает каждую строку, но ничего не печатает.Поэтому вам нужно добавить явное print
, если вы успешно сопоставите.
perl -ne 'while ( m/\"\/watch\?v=(.+?)\"/g ) { print "$1\n" }' filename.txt
Другой подход, если вы уверены, что каждая строка будет соответствовать, - это использовать параметр -p
, который выводит значение$_
после обработки, например:
perl -pe 's/\"\/watch\?v=(.+?)\"/$1//' filename.txt