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

Read Filename Without Extension Bash



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

Използване на командата `basename` за четене на името на файла

Командата `basename` се използва за четене на името на файла без разширение от директория или път на файла.







Синтаксис:



basenameИМЕ[НАСТАВКА]

или



basenameОПЦИЯ ... ИМЕ ...

Тук NAME може да съдържа името на файла или името на файла с пълен път. SUFFIX не е задължителен и съдържа частта с разширение на файла, която потребителят иска да премахне. Командата `basename` има някои опции, които са описани по -долу.





Настроики

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

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

Следващата команда „basename“ ще извлече името на файла с разширение. SUFFIX е пропуснат от тази команда. Тук изходът е „Product.txt“ .



$basename /У дома/fahmida/код/product.txt

Ако искате да извлечете името на файла без разширение, тогава трябва да предоставите разширението на файла като SUFFIX с команда „basename“. Тук разширението е .txt. Изпълнете следната команда, за да премахнете разширението от файла.

$basename /У дома/fahmida/код/product.txt .txt

Пример-2: Използване на опцията „-a“ и NAME

Използването на опцията „-a“ на командата „basename“ е показано в този пример. Тук два файлови пътя се предават като аргументи с команда „basename“. Всяко име на файл с разширение ще се извлече от пътя и ще се отпечата с нов ред.

$basename -да се /У дома/fahmida/index.html/У дома/fahmida/код/emp.txt

Пример-3: Използване на опцията „-z“ и ИМЕ

Опцията „-z“ се използва с командата „basename“ за отпечатване на множество имена на файлове с нулева стойност вместо нов ред. Следващата команда използва две опции заедно, „-a“ и „-z“. Ето две имена на файлове, index.html и emp.txt ще се отпечата без интервал или нов ред.

$basename -на /У дома/fahmida/index.html/У дома/fahmida/код/emp.txt

Пример-4: Използване на опцията „-s“ и NAME

Следващата команда може да се използва като алтернатива на SUFFIX с `basename`. Разширението на файла трябва да премине с опцията „-sh“, за да премахне разширението на файла от файла. Следващият пример ще премахне разширението „-sh“ от файла „add.sh“.

$basename .sh допълнение.sh

Пример-5: Премахнете разширението на файла без SUFFIX

Ако не знаете разширението на файла, което искате да премахнете от името на файла, този пример ще ви помогне да разрешите проблема. Създайте файл с име read_file.sh със следния код, за да извлечете името на файла с всяко разширение. Командата `sed` се използва в този пример за премахване на всеки тип разширение от името на файла. Ако стартирате скрипта, изходът ще бъде „ средно аритметично „След премахване на разширението“ py '.

read_file.sh

#!/bin/bash
# Задайте името на файла с път
име на файл='/home/fahmida/code/average.py'
# Прочетете името на файла без разширение, като използвате командите „basname“ и „sed“
изхвърлен '$ (базово име '$ filename' | sed 's/ (.*) ..*/ 1/')'

Стартирайте скрипта.

$башread_file.sh

Пример-6: Конвертирайте разширението на файла от txt в docx

Името на файла без разширение трябва да конвертира файла от едно разширение в друго. Този пример показва как можете да промените разширението на всички текстови файлове (.txt) в word файлове (.docx), като използвате командата `basename` в bash скрипта. Създайте файл с име, convert_file.sh със следния код. Тук цикълът за вграждане се използва за четене на всички текстови файлове с .текст разширение от текущата директория. Името на файла без разширение се чете от командата `basename` и се преименува чрез добавяне на .docx разширение във всяка итерация на цикъла.

convert_file.sh

#!/bin/bash
# цикълът ще прочете всеки текстов файл от текущата директория
заиме на файлв ls *.текст
направете
# Отпечатайте името на текстовия файл преди преобразуването
изхвърлен „Име на файла преди преобразуването:$ име на файл'
# Променете разширението на файла txt на docx
mv - '$ име на файл' '$ (basename - '$ filename' .txt).docx '
Свършен

Стартирайте скрипта.

$башconvert_file.sh

Проверете дали текстовите файлове са преобразувани или не, като използвате командата `ls`.

$ls

Пример-7: Прочетете името на файла без разширение, като използвате разширение на параметъра Shell

Разширението на параметъра Shell е друг начин за четене на името на файла без разширение в bash. Този пример показва използването на разширяване на параметри на обвивката. Следващата команда ще съхранява името на пътя на файла в променливата $ име на файл .

$име на файл='/var/usr/temp/myfile.tar.gz'

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

$файл1='$ {име на файла %%.*}'

Следващата команда ще отпечата името на файла само от пътя. Тук изходът ще бъде „ myfile '.

$изхвърлен '$ {file1 ##*/}'

Ако името на файла съдържа две разширения с две точки (.) И искате да прочетете името на файла, като премахнете последното разширение на файла, тогава трябва да използвате следната команда. Изпълнете следната команда, която съхранява пътя на файла в променливата, $ file2 като премахнете последното разширение на файла.

$файл2='$ {име на файл%.*}'

Сега изпълнете следната команда, за да отпечатате името на файла с разширение с една точка (.) Тук изходът ще бъде myfile.tar.

$изхвърлен '$ {file2 ## * /}'

Заключение

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