Вы можете использовать awk
в сочетании с bashread
:
read -r FIRST_NAME LAST_NAME <<< $(awk -F, -v cid="$customer_id" '$0~cid{print $5,$6}' customer-info)
-F
указывает awk использовать запятую в качестве разделителя полей
-v
устанавливает переменную awk cid
в переменную оболочки$customer_id
Если строка соответствует $customer_id
, awk напечатает 5-е и 6-е поля, и им будут назначены переменные FIRST_NAME
и LAST_NAME
.
Если имя ($5 )содержит пробел (пример :a,b,c,d,Сара Джейн,Смит )добавьте -v OFS=,
, чтобы awk
выводилась запятая между поля и префикс read
с IFS=,
, чтобы разделить его запятой.
Кроме того, awk
может выполнять поиск только в определенном поле, таком как '$3~cid{print..}'
--, и может сопоставлять это все поле с помощью '$3~"^"cid"$"{print...}'
, если это важно для ваших идентификаторов.
gdisk
удалось починить привод. Он отображал некоторые предупреждения, но смог правильно прочитать основную копию GPT, настроить расположение вторичного GPT и записать таблицу разделов обратно на диск.
Я также пробовал fdisk
и gparted
, но ни один из них не смог правильно обработать диск. fdisk
видел только защитный MBR. gparted
сказал, что резервный GPT был поврежден и использовал основной, но затем не смог увидеть ни одного из разделов на диске.