Пишу скрипт для работы со стримером и нужно поймать значение File number=2 (именно «2») из вывода команды «mt -f /dev/nst0 status»
Выглядит он так:
SCSI 2 tape drive:
File number=2, block number=0, partition=0.
Tape block size 512 bytes. Density code 0x42 (LTO-2).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
Решил сделать это через awk
команда:
mt -f /dev/nst0 status | awk -F "," '{if (NR==2) {if (NF=1) { print }}}'
выводит «File number=2» и, по идее, нужно сделать:
mt -f /dev/nst0 status | awk -F "," '{if (NR==2) {if (NF=1) /[0-9]/ { print }}}'
чтобы отсеять значение File number. Но awk при этом ругается на «{» перед «print» (parse error)
И еще вопросы.
Вроде можно перечислить все условия через &&
Например:
mt -f /dev/nst0 status | awk -F "," '{if (NR==2) && (NF=1) && (/[0-9]/) { print }}'
Но тут выскакивает ошибка на первое же упоминание &&
Почему?
awk нормально воспринимает (NR==2), но выводит пустоту на (NF==1), обрабатывая строку так как нужно только с (NF=1). И наоборот. Это я никак не могу понять.
Ну и, может есть другие решения данной задачи?
P.S. Знаю, что можно отсеять через grep или любым другим способом, передав вывод первой команды дальше через конвейер (|), но интереснее же обойтись одним вызовом :)
Похожие темы
- Форум Аппаратное сжатие dump (2003)
- Форум Помогите плиз разобраться со стриммером (2005)
- Форум Так что, со стримером ни кто не поможет? (2002)
- Форум Архивация на Ultrium 448 LTO-2 (2010)
- Форум LTO-2 стример IBM ULTRIUM-TD2 не хочет писать с компрессией более 200Gb (2013)
- Форум bash скрипт. Помогите правильно написать. (2013)
- Форум Как правильно написать строку на bash (2011)
- Форум скрипт bash/sed/awk (2014)
- Форум awk в bash скрипте (2005)
- Форум помогите написать bash скрипт (2020)