LINUX.ORG.RU

не контролируемое изменение данных при использовании awk '{if ($3='1') print}'

 ,


0

1

Господа выручайте!

Необходимо в скрипт добавить вывод съемных устройств.

использовал команду lsblk (возможно есть и более простые варианты но я не нашел пока.) Поле RM показывает съемное устройство или нет. При корректировки вывода только съемных устройств через awk вывод превращается в бред. все показатели опции RM меняются. При этом при выводе только $3 все нормально.

home@Home-Linux:/media$lsblk | grep -iE 'part|disk' # выводим только диски и разделы
sda      8:0    0 238,5G  0 disk
├─sda1   8:1    0   100M  0 part /boot/efi
├─sda2   8:2    0    16M  0 part
├─sda3   8:3    0 237,9G  0 part
└─sda4   8:4    0   516M  0 part
sdb      8:16   0 465,8G  0 disk
└─sdb1   8:17   0 465,8G  0 part
sdc      8:32   0 931,5G  0 disk
└─sdc1   8:33   0 931,5G  0 part /media/home/DATA
sdd      8:48   0 223,6G  0 disk
├─sdd1   8:49   0   512M  0 part
└─sdd2   8:50   0 223,1G  0 part /run/timeshift/backup
sde      8:64   1  28,8G  0 disk
└─sde1   8:65   1  28,8G  0 part 
home@Home-Linux:/media$ lsblk | grep -iE 'part|disk' | awk '{if ($3=1) print}' # выводим на экран только диски и разделы в 3 позиции которых 1 (3-я позиция это ключ RM: 1-съемное устройство 0-не съемное устройство)
sda 8:0 1 238,5G 0 disk
├─sda1 8:1 1 100M 0 part /boot/efi
├─sda2 8:2 1 16M 0 part
├─sda3 8:3 1 237,9G 0 part
└─sda4 8:4 1 516M 0 part
sdb 8:16 1 465,8G 0 disk
└─sdb1 8:17 1 465,8G 0 part
sdc 8:32 1 931,5G 0 disk
└─sdc1 8:33 1 931,5G 0 part /media/home/DATA
sdd 8:48 1 223,6G 0 disk
├─sdd1 8:49 1 512M 0 part
└─sdd2 8:50 1 223,1G 0 part /run/timeshift/backup
sde 8:64 1 28,8G 0 disk
└─sde1 8:65 1 28,8G 0 part

И в итоге вопрос. Почему?

Основная задача в следующем. При выполнении скрипта пользователю необходимо выбрать диск для монтирования. для этого на экран нужно вывести перечень съемных устройств для выбора.



Последнее исправление: kirlabs (всего исправлений: 5)

Ответ на: комментарий от pinus_nigra

по идее (по логике и памяти изучения Delphi и паскаля) при использовании if он должен проверять, а не выполнять. хотя… почитав про if понял что ничего не понял (так как использование (...) или ((...)) и аналогично [...] для меня пока не ясно в чем разница, но это я поковыряю). В любом случае большое спасибо.

kirlabs
() автор топика
Ответ на: комментарий от kirlabs

Так awk больше на C или perl похож, чем на паскаль.

Aegir
()
Ответ на: комментарий от kirlabs

Ну, вот он у тебя и «проверил», что присвоение произошло успешно.

YAR ★★★★★
()
Ответ на: комментарий от pinus_nigra

истину глаголишь, мой хвойный друг

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.