Windows может только смонтировать варианты FAT и NTFS исходно. Несобственные файловые системы существуют, но требуют прохождения через обручей до такой степени, что часто более просто установить Linux (или FreeBSD) VM. Так, выберите FAT32 или NTFS.
Драйвер NTFS-3g FUSE доступен на FreeBSD как порт (fusefs-ntfs
), как связанные утилиты (ntfsprogs
).
Просто необходимо выйти из точки в Вашем sed
команда и все будут прекрасны. Как это:
sed 's/\.$//'
Поскольку в случае Вы не выходите из него, .$
будет соответствовать к любому символу в конце строки.
Также можно поместить все Ваш sed
+ grep
+ cut
во всего один sed
:
sed 's=/[^/]*$==;s/\.$//' filename
Просто немного измените регулярное выражение :, чтобы избежать .
И не надоgrep
cat filename | cut -d"/" -f1 | sed 's/\.$//'
Удаление символа только если он есть как раз и есть описание раскрытия параметров.
$ var=path.
$ echo "$var ${var%.}"
path. path
В этом случае точка не является специальной (точка является специальной в регулярном выражении ).
Другой шаблон можно удалить с помощью%/*
:
$ var=openOffice.org/ozm
$ echo "${var%/*}"
openOffice.org
Для удаления обоих:
$ var=roonstr./ozm
$ var=${var%/*}
$ var=${var%.}
$ echo "$var"
roonstr
Конечно, для работы с исходным файлом быстрее использовать sed для файла.
Только не забудьте поставить точку (в кавычки, чтобы она соответствовала буквально, иначе это означает :любой символ ).
$ sed 's,/.*,,;s,\.$,,' file
sed -n '/\./{s=/[^/]*$==;s/\.$//;p}
. Так или иначеgrep
+sed
будет работать намного дольше, чем всего одинsed
. – rush 15.08.2012, 10:33sed 's/[./]\+[^./]*$//'
– Peter.O 15.08.2012, 10:36