Начиная с версии 3.25.3 вы можете просто установить SQLITE_HISTORY для изменения имени файла истории, как написал mattmc3. В предыдущих версиях он был жестко закодирован в строке 5576 в shell.c (версия 3.14.1):
sqlite3_snprintf(nHistory, zHistory,"%s/.sqlite_history", zHome);
Итак, чтобы изменить его, одним из вариантов, упомянутых в этой ветке , является , чтобы изменить его. исходный код и перекомпилировать.
Используйте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
попробуйте следующую команду:
df -h | awk '/\/vstorage\/cluster07/ {print $4}'
Сsed
:
df -h | sed -rn 's|[^ ]+ +([^ ]+).*|\1|p'
Или, сgrep
:
df -h | grep -Eo '[0-9]+%'
Последнее может быть немного грубым, потому что оно зависит ровно от одного символа %
в выводе df -h
. Но это достаточно просто и эффективно.
Скажите df
, что выводить:
df -h --output=avail | tail -n1
Note: this might not be portable to all *nixes.