Прочитать имя файла без расширения в Bash

Read Filename Without Extension Bash



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

Использование команды basename для чтения имени файла

Команда basename используется для чтения имени файла без расширения из каталога или пути к файлу.







Синтаксис:



базовое имяИМЯ[СУФФИКС]

или



базовое имяВАРИАНТ ... НАЗВАНИЕ ...

Здесь NAME может содержать имя файла или имя файла с полным путем. SUFFIX является необязательным и содержит часть расширения файла, которую пользователь хочет удалить. У команды basename есть несколько параметров, которые описаны ниже.





Параметры

Имя Описание
Он используется для передачи нескольких имен файлов с путем или без пути в качестве аргументов команды.
-s Он используется для передачи расширения как суффикса, который необходимо удалить.
-С участием Он используется для отображения нескольких имен файлов, разделяя каждый файл нулевым символом.
-помощь Он используется для отображения информации об использовании команды basename.
-версия Он используется для отображения информации о версии.

Пример-1: Использование NAME и SUFFIX

Следующая команда `basename` получит имя файла с расширением. СУФФИКС в этой команде опускается. Здесь вывод ‘Product.txt’ .



$базовое имя /дом/Фахмида/код/product.txt

Если вы хотите получить имя файла без расширения, вы должны указать расширение файла как SUFFIX с помощью команды basename. Здесь расширение .txt. Выполните следующую команду, чтобы удалить расширение из файла.

$базовое имя /дом/Фахмида/код/product.txt .txt

Пример-2: Использование параметра «-a» и ИМЯ

В этом примере показано использование опции «-a» команды «basename». Здесь два пути к файлам передаются в качестве аргументов с помощью команды basename. Каждое имя файла с расширением будет извлекаться из пути и печататься с новой строкой.

$базовое имя /дом/Фахмида/index.html/дом/Фахмида/код/emp.txt

Пример-3: Использование параметра «-z» и ИМЯ

Параметр ‘-z’ используется с командой `basename` для печати нескольких имен файлов с нулевым значением вместо новой строки. Следующая команда использует вместе две опции: «-a» и «-z». Здесь два имени файла, index.html а также emp.txt будет печататься без пробелов и новой строки.

$базовое имя - /дом/Фахмида/index.html/дом/Фахмида/код/emp.txt

Пример-4: Использование параметра '-s' и ИМЯ

Следующая команда может использоваться как альтернатива SUFFIX с `basename`. Расширение файла необходимо передать с параметром «-sh», чтобы удалить расширение файла из файла. В следующем примере будет удалено расширение «-sh» из файла «add.sh».

$базовое имя -s.sh add.sh

Пример-5: Удалить расширение файла без СУФФИКСА

Если вы не знаете расширение файла, который хотите удалить из имени файла, этот пример поможет вам решить проблему. Создайте файл с именем read_file.sh со следующим кодом, чтобы получить имя файла любого расширения. Команда `sed` используется в этом примере для удаления любого типа расширения из имени файла. Если вы запустите сценарий, на выходе будет « в среднем ’После удаления расширения‘ ру '.

read_file.sh

#! / bin / bash
# Задайте имя файла с путем
имя файлазнак равно'/home/fahmida/code/average.py'
# Прочтите имя файла без расширения, используя команду ‘basname’ и `sed`
выбросил '$ (базовое имя '$ имя_файла' | sed 's / (. * ) .. * / 1 / ')'

Запускаем скрипт.

$трепатьread_file.sh

Пример-6: преобразование расширения файла из txt в docx

Имя файла без расширения необходимо для преобразования файла из одного расширения в другое. В этом примере показано, как вы можете изменить расширение всех текстовых файлов (.txt) на файлы слов (.docx) с помощью команды `basename` в сценарии bash. Создайте файл с именем, convert_file.sh со следующим кодом. Здесь цикл for-in используется для чтения всех текстовых файлов с .текст расширение из текущего каталога. Имя файла без расширения читается командой basename и переименовывается путем добавления расширения .docx на каждой итерации цикла.

convert_file.sh

#! / bin / bash
# цикл будет читать каждый текстовый файл из текущего каталога
дляимя файлав ``ls *.текст``
делать
# Распечатать текстовое имя файла перед преобразованием
выбросил 'Имя файла до преобразования:$ filename'
# Измените расширение файла txt на docx
мв - '$ filename' '$ (базовое имя - '$ имя файла' .txt).docx '
сделано

Запускаем скрипт.

$трепатьconvert_file.sh

Проверьте, преобразованы ли текстовые файлы или нет, с помощью команды ls.

$ls

Пример-7: Чтение имени файла без расширения с использованием расширения параметров оболочки

Расширение параметров оболочки - это еще один способ прочитать имя файла без расширения в bash. В этом примере показано использование расширения параметров оболочки. Следующая команда сохранит путь к файлу в переменной $ имя файла .

$имя файлазнак равно'/var/usr/temp/myfile.tar.gz'

Следующая команда удалит все типы расширений из пути и сохранит путь к файлу без расширения в переменной, $ file1 .

$file1знак равно'$ {имя файла %%. *}'

Следующая команда напечатает имя файла только из пути. Здесь вывод будет ' мой файл '.

$выбросил '$ {file1 ## * /}'

Если имя файла содержит два расширения с двумя точками (.), И вы хотите прочитать имя файла, удалив последнее расширение файла, вам необходимо использовать следующую команду. Выполните следующую команду, которая сохраняет путь к файлу в переменной, $ file2 удалив последнее расширение файла.

$файл2знак равно'$ {имя файла%. *}'

Теперь выполните следующую команду, чтобы напечатать имя файла с расширением в одну точку (.). Здесь вывод будет myfile.tar.

$выбросил '$ {file2 ## * /}'

Заключение

Имя файла без расширения требуется для различных целей. Некоторые варианты использования имени файла без расширения объясняются в этом руководстве с помощью некоторых примеров, таких как преобразование файлов. Это руководство поможет тем пользователям, которым интересно узнать, как отделить имя и расширение файла от пути к файлу. Здесь объясняются два способа. Пользователь может использовать любой из этих способов для извлечения имени файла только из пути к файлу.