AWK - Как извлечь совпадения, включая часть имени файла, из нескольких файлов
У меня есть 1000 файлов с именем файла, как это:
total_val_count.html? Itemid=5555
с содержанием
total.val={"number":1234,"Validation":YES}
я хочу вывод, как этот itemid: число с использованием awk
5555:1234
Спасибо
1 ответ
Решение
Если у вас есть GNU Awk:
$ gawk '
BEGINFILE{
split(FILENAME,a,/=/)
}
match($0,/"number":[0-9]+/){
printf "%s:%d\n", a[2], substr($0,9+RSTART,RLENGTH)
}
' total_val*
5555:1234
Или с Perl
$ perl -lnE '$x = (split /=/,$ARGV)[1]; say "$x:$1" if /"number":(\d+)/' total_val*
5555:1234
Ни в том, ни в другом случае не выполняется проверка (например, что имя файла успешно разбивается на =
знак).