Как автоматически изменить конфигурацию kbd при подключении USB-клавиатуры к ноутбуку (и получить детерминированное поведение )?

$ awk -F, -vOFS=, 'FNR==2 || FNR==4 { for (i=1;i<=NF;++i) $i="N/A" } 1' file
RS,RPHG,LPHG,RITC
N/A,N/A,N/A,N/A
-12.5663095454547,-33.8395547159089,-3.44606818181819,-24.8157817329538
N/A,N/A,N/A,N/A
-29.9357495454533,-34.5783047159075,-50.3323381818191,2.0808182670462

FNR— порядковый номер текущей записи в текущем файле («номер строки в текущем файле» ). Если их два или четыре, мы перебираем все поля (от 1 до NF, количество полей )и устанавливаем для каждого поля строку N/A. Замыкание 1в конце является кратким способом записи { print }и приведет к печати всех строк (, измененных или не измененных ).

Если у вас есть дополнительный файл со всеми номерами строк, которые следует удалить (по одному номеру в строке):

awk -F, -vOFS=, 'FNR==NR { a[$1]; next }
                 FNR in a { for (i=1;i<=NF;++i) $i="N/A" } 1' lines file

Где lines— файл с номерами строк.

Здесь, если FNR==NR, то мы читаем из первого файла (файл lines). В этом случае мы создаем запись в массиве aс номером строки в качестве ключа и продолжаем со следующей строки. NR— это общее число прочитанных на данный момент строк, и оно будет равно FNR, пока мы не начнем чтение со второго файла.

Если FNRне равно NR, то мы читаем второй файл (файл file, содержащий данные ). Затем мы проверяем, является ли текущий номер строки ключом в массиве a, и если это так, мы заменяем все поля, как и раньше, на N/A.

1
04.09.2020, 13:56
0 ответов

Теги

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