Печатать текст, который появляется после совпадения подстроки, используя awk в Perl

Обычно это вызвано неполным source.list(/etc/apt/sources.list).

Проверьте свой source.list, особенно следующие записи (предположим, ubuntu14.04):

trusty-security  
trusty-updates  
trusty-backports  
trusty-proposed  

пример исходного списка:

deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse  
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse  
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse  
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse  
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse

Затем запустите apt-get updateи повторите попытку.

0
04.11.2020, 03:55
1 ответ

Только Awk, если вы хотите захватить все до следующей запятой:

$ awk -F'|' -v r="qux quux " '
    match($0,r "[^,]*") {print $1, substr($0,RSTART+length(r),RLENGTH-length(r))}
  ' MyFile
1234 10 sec

GNU awk:

$ gawk -F'|' 'match($0,/qux quux ([^,]*)/,a) {print $1, a[1]}' MyFile
1234 10 sec

Перл:

$ perl -F'\|' -lne 'print "$F[0] $1" if /qux quux ([^,]*)/' MyFile
1234 10 sec
2
18.03.2021, 22:52

Теги

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