Решением этой проблемы было удаление блоков резервного хранилища и лун (, оставив цели на месте ). Затем я перестроил блоки в targetcli, чтобы они указывали на правильные местоположения /dev/sd *.
В будущем мы перенесем все это с помощью /dev/disk/by -partuuid, чтобы сопоставить резервные хранилища с блочными устройствами, что должно решить проблему сохраняемости.
Если ваши требования
тогда вы можете рассматривать разделитель как последовательность из трех символов ","
.
awk -F '","' '$9>200 {print}' file.csv
({print}
не нужен, я вставил его для ясности, чтобы указать, куда добавить дополнительный код ).
Изменить :расширенный пример, вывести 3 столбца в том же формате, если девятый больше 200.
awk -F '","' 'BEGIN {OFS=FS}$9>200{print "\""$3,$8,$9"\""}'
Измените разделитель на |
и выполните сортировку в числовом порядке.
awk -F '","' 'BEGIN {OFS="|"}$9>200{print $3,$8,$9}' | sort -d'|'-n -k3
Возможно, вы захотите использовать инструмент, который знает, как анализировать файлы CSV. Например, у Миллера:
mlr -N --csv filter '$9 > 200' < your-file
В GNU awk
вы можете установить FPAT
для определения полей на основе шаблонов, которым они соответствуют, а не разделителя, который их ограничивает:
gawk -v 'FPAT=[^",]*|"([^"]|"")*"' 'substr($9,2) > 200'
Здесь также обработка "
экранирована как ""
, но при условии, что значения полей не содержат символов новой строки и что 9 -е поле всегда заключено в кавычки.