у меня есть 1 000 файлов с именем файла как это:
total_val_count.html? itemid=5555
с содержанием
total.val={"number":1234,"Validation":YES}
я хочу вывод как этот itemid:number с помощью awk
5555:1234
Спасибо
Если у Вас есть 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
Ни в том, ни в другом случае любая сделанная проверка (например, что имя файла разделяет успешно на =
знак).