cut / grep df -h [дубликат]

Начиная с версии 3.25.3 вы можете просто установить SQLITE_HISTORY для изменения имени файла истории, как написал mattmc3. В предыдущих версиях он был жестко закодирован в строке 5576 в shell.c (версия 3.14.1):

sqlite3_snprintf(nHistory, zHistory,"%s/.sqlite_history", zHome);

Итак, чтобы изменить его, одним из вариантов, упомянутых в этой ветке , является , чтобы изменить его. исходный код и перекомпилировать.

2
27.09.2018, 14:05
4 ответа

Используйтеawk

awk '{print $4}'
3.1T  

 echo vstorage://cluster07                  4.0T  907G  3.1T  23% /vstorage/cluster07 | awk '{print $4}'

илиgrep

 grep -o '\b3.1T\b'
 3.1T  

 echo vstorage://cluster07                  4.0T  907G  3.1T  23% /vstorage/cluster07 | grep -o '\b3.1T\b'


\b in a regular expression means "word boundary".
-o, --only-matching

илиcut:

cut -d" " -f4
 3.1T  

 echo vstorage://cluster07                  4.0T  907G  3.1T  23% /vstorage/cluster07 | cut -d" " -f4

Обратите внимание, что на практике вам потребуется преобразовать таблицу в таблицу с фиксированной -шириной, а затем использовать cutследующим образом:

echo "vstorage://cluster07                  4.0T  907G  3.1T  23% /vstorage/cluster07" | awk '{for(i=1;i<=NF;i++) { printf "%-5s",$i } ; printf("\n"); }' | cut -d" " -f3
3.1T
6
27.01.2020, 21:49

попробуйте следующую команду:

df -h | awk '/\/vstorage\/cluster07/ {print $4}'
3
27.01.2020, 21:49

Сsed:

df -h | sed -rn 's|[^ ]+ +([^ ]+).*|\1|p'

Или, сgrep:

df -h | grep -Eo '[0-9]+%'

Последнее может быть немного грубым, потому что оно зависит ровно от одного символа %в выводе df -h. Но это достаточно просто и эффективно.

0
27.01.2020, 21:49

Скажите df, что выводить:

df -h --output=avail | tail -n1

Note: this might not be portable to all *nixes.

7
27.01.2020, 21:49

Теги

Похожие вопросы