Я боролся с этим сам некоторое время.
Необходимо использовать -m
опция, которая позволяет Вам указывать шаблон для файлов, чтобы продолжить работать. Включите шаблон в кавычки, если Вы хотите *
, *.jpg
или *.*
и т.д. для работы (или иначе оболочка сделает соответствие в текущем каталоге вместо того, чтобы передать шаблон для ntfs-восстанавливания-после-удаления).
Для подведения это, что работало на меня, была следующая команда:
sudo ntfsundelete /dev/sdb2 -u -m '*'
df -P | sed -n '/test/s/.*[[:blank:]]\(.*\)%[[:blank:]]*\(.*\)/\2 \1/p'
(который предполагает, что пути точки монтирования не содержат % или символы новой строки),
Я думаю что-то следующим образом. Я не понимаю целого вопроса хотя
df -h | awk '/test/{print $1" "$5}' | sed -e ':a;N;$!ba;s/\n/ /g' -e 's/%//g'
Так как вопрос изменился, вот обновленный ответ
df -h | awk '/test/{print $1, +$5}'
df | awk '/test/ {print $1 " " $5}'
распечатает
/test 10%
/test/drv0 20%
/test/drv1 15%
Я использовал бы int()
функция в awk, который удалит %
и важный -P
флаг к df
потому что, если раздел в LVM затем также это - печать правильно.
df -hP | awk '/test/{print $1,int($5)}'
Это не хорошее решение для Вашей конкретной ситуации (она работает, но напрасно сложна), необходимо использовать ответы, уже предоставленные. Я просто хотел упомянуть другой инструмент, который очень полезен, когда Вы хотите присоединиться к выводу нескольких программ, paste
:
DESCRIPTION
Write lines consisting of the sequentially corresponding lines from
each FILE, separated by TABs, to standard output. With no FILE, or
when FILE is -, read standard input.
Объединенный с ударом обрабатывают замену, можно объединить вывод двух команд как это:
$ paste <(df -h | grep test | sed -e 's/*%.^ //g;s/.*[ ^I]//') \
<(df -h | grep test | cut -d '%' -f1 | sed -e 's/*%.^ //g;s/.*[ ^I]//')
/test 10
/test/drv0 20
/test/drv1 15
Или, для использования более простого примера:
$ paste <(echo -e "a\nb\nc") <(echo -e "1\n2\n3")
a 1
b 2
c 3
-P
(posix) использование. – Olivier Dulac 27.09.2013, 11:23