Bash, препарируем путь до файла

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

Вот у нас есть файл

[user@ora6 ~]$ ls -l  /tmp/project/Геофизическая\ изученность/Таблица\ изученности\ геофизическая.doc

получить путь до файла

[user@ora6 ~]$ dirname '/tmp/project/Геофизическая изученность/Таблица изученности геофизическая.doc'
/tmp/project/Геофизическая изученность

получить имя файла

[user@ora6 ~]$ basename '/tmp/project/Геофизическая изученность/Таблица изученности геофизическая.doc'
Таблица изученности геофизическая.doc

А если вам необходимо получить, к примеру, третью папку пути, то на помощь изящно приходит awk

[user@ora6 ~]$ echo /tmp/project/Геофизическая изученность/Таблица изученности геофизическая.doc | awk -F '/' '{print $4}'
Геофизическая изученность

На этом урок для начинающих закончен 🙂

Bash, файлы, пробелы, скобки и прочее…

Привет,

Данная статья более пригодиться начинающим скриптоводам, т.к. незнание этого заставляет делать их ужасные вещи 🙂  По специфике работы мне частно, даже очень часто, приходится парсить много текстовой информации — логи, файлы.
И если в имени файла есть пробел, скобки и что-то еще банальный цикл по массиву таких строк падает и рушит всю вашу задумку.
Читать далее