AWK - Как извлечь соответствия включая часть имени файла из нескольких файлов

у меня есть 1 000 файлов с именем файла как это:

total_val_count.html? itemid=5555

с содержанием

total.val={"number":1234,"Validation":YES}

я хочу вывод как этот itemid:number с помощью awk

5555:1234

Спасибо

0
задан 14 March 2019 в 14:12

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

Ни в том, ни в другом случае любая сделанная проверка (например, что имя файла разделяет успешно на = знак).

1
ответ дан 26 October 2019 в 01:15

Другие вопросы по тегам:

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