Постоянно использую cut, но в этот раз поведение утилиты меня весьма озадачило.
Нужно получить список носителей, и делаю я это так:
kitaets@laptop:~$ sudo parted -l | grep "/dev/" | cut -d' ' -f2
/dev/sda:
/dev/sdb:
/dev/sdc:
kitaets@laptop:~$
Видите пустую строку? Это жжж неспроста...
kitaets@laptop:~$ sudo parted -l | grep "/dev/"
Диск /dev/sda: 256GB
Диск /dev/sdb: 15,9GB
Диск /dev/sdc: 32,0GB
Ошибка: /dev/sdd: метка диска не определена
Последняя строка - именно она превращается в строку нулевой длины. Ошибка должна быть, ибо диск не содержит разделов.
Проверяю, подменив вызов parted на echo:
kitaets@laptop:~$ sudo echo "Ошибка: /dev/sdd: метка диска не определена" | grep "/dev/" | cut -d' ' -f2
/dev/sdd:
Вроде всё в порядке.
Кто-нибудь может объяснить, что я делаю не так?
P.S. Тут главный вопрос - не поиск алгоритма, а почему не работает то, что работать должно? Но можно и альтернативу предложить (задача - получить список дисков, и parted вроде бы оптимальный вариант).