Если:
var="Volume: 0: 100% 1: 100%"
, то:
, чтобы извлечь первый 100, вы можете использовать:temp=$(awk -F": |%" '{print $3}' <<< "$var")
для извлечения последнего 100 вы можете использовать: temp=$(awk -F": |%" '{print $5}' <<< "$var")
для извлечения обоих 100 вы можете использовать: temp=$(awk -F": |%" '{print $3, $5}' <<< "$var")
Если вы не знаете, где находится файл, используйте команду find.
find / -name MY_FILE
Он напечатает полный путь MY_FILE, начиная с /.
или вы можете использовать find $PWD -name MY_FILE для поиска в текущем каталоге.
Если вы знаете местоположение MY_FILE, перейдите в папку containg MY_FILE и используйте команду
pwd, чтобы напечатать полный путь к MY_FILE. [!d6 ]
Используйте readlink с флагом -e. Он не только дает вам полный путь к файлу, но также представляет реальный путь к symlinks
$ readlink -e ./out.txt
/home/xieerqi/out.txt
Я лично использую его в своих собственных скриптах всякий раз, когда необходимо получить полный путь к файлу
Вот функция, показывающая пути к файлам, вам может понадобиться только часть «fpath = ....»?
pathtofile () { : "gives full path to files given in parameters.";
for f in "$@"; do
fpath="$(
cd -P "$(dirname "$f")" && \
printf '%s\n' "$(pwd)/$(basename "${f}")" || \
{ echo "__An error occured while determining path to file: '${f}'."\
"Maybe your user can't access its directory, most likely?__"
} )"
printf "Full path to: %s\n is: %s\n" "'${f}'" "'${fpath}'";
done
}
Использовать с:
pathtofile file1 ../file2 /some/pathwithsymlink/file3
[d2 ] Важная часть: cd -P somedir: показывает полный «реальный» путь к somedir.