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

Простое решение:

for((i=1;i<2182;i++)); do
    file_in="anacovis2_${i}_summary_betai_reg.out"
    file_out="awk_output_${i}"
    awk '$1==1 { print $NF }' "$file_in" >"$file_out"
done

Более быстрым решением может быть открытие входных и выходных файлов с помощью awk, чтобы требовался только один awkпроцесс вместо 2181...

0
11.11.2019, 00:38
1 ответ

Не проверено и просто угадывается по номерам полей, поскольку вы не предоставили образцы ввода/вывода, но вам понадобится что-то вроде этого:

yearpref1='2001'
rating='R'
score='84'
awk -F ',' -v OFS=', ' -v year="$yearpref1" -v rating="$rating" -v score="$score" '
(year == $5) && (rating == $9) && (score == $23) { print $1, $5; f=1; exit }
END { if (!f) print "Sorry" }
' netflixNoDup.csv

Обратите внимание, что это печатает первую совпадающую строку, а не случайную совпадающую строку.

0
28.01.2020, 03:07

Теги

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