Управляйте выходным сигналом с помощью sed
У меня есть вопрос о седе.
Выход:
Filesystem avail
rpool/ROOT/s10_u11_201704 244719726
Требуется информация:
s10_u11_201704
Я старался:
df -b / | sed '1d;s/.*\/\(*\ \)\ .*/\1/g'
\(*\ \)
не работает.
2 ответа
Решение
С помощью awk
:
df -b / |awk -F'/' 'NR>1{split($NF,a," ");print a[1]}'
s10_u11_201704
С помощью sed
:
df -b / |sed -r '1d;s|(^.*)/([^ ]+).*|\2|g'
s10_u11_201704
Отказ от ответственности: df -b
недоступен ни в одном из доступных мне дистрибутивов.
Короткий подход к awk:
df --output=source | awk -F'/' '{print $NF}'
--output=source
(--output[=FIELD_LIST]
) - использовать формат вывода, определенныйFIELD_LIST
-F'/'
- лечение/
в качестве разделителя полей$NF
- последнее значение поля