Прочитајте име датотеке без наставка у Басх -у

Read Filename Without Extension Bash



Корисници Линука морају редовно да раде са датотекама у многе сврхе. Понекад корисници морају да прочитају основни назив датотеке само уклањањем наставка датотеке. Назив датотеке и екстензија могу се одвојити и похранити на различите варијабле у Линуку на више начина. Басх уграђена наредба и проширење параметара љуске могу се користити за уклањање наставка датотеке. У овом водичу је објашњено како се назив датотеке без наставка може прочитати на горе наведене начине.

Употреба команде `басенаме` за читање имена датотеке

команда `басенаме` се користи за читање имена датотеке без екстензије из директоријума или путање до датотеке.





Синтакса:



басенамеНАМЕ[СУФИКС]

или



басенамеОПЦИЈА ... ИМЕ ...

Овде НАМЕ може да садржи назив датотеке или назив датотеке са пуном путањом. СУФФИКС је опционалан и садржи део проширења датотеке који корисник жели да уклони. Команда `басенаме` има неке опције које су описане у наставку.





Опције

Име Опис
-до Користи се за прослеђивање више назива датотека са путањом или без путање као аргументе команде.
Користи се за прослеђивање наставка као суфикса који треба уклонити.
-Са Користи се за приказ више назива датотека одвајањем сваке датотеке са нулл.
-помоћ Користи се за приказ информација о употреби наредбе `басенаме`.
–Верзија Користи се за приказ информација о верзији.

Пример-1: Коришћење НАМЕ и СУФФИКС

Следећа команда `басенаме` ће дохватити назив датотеке са наставком. СУФФИКС је изостављен из ове команде. Овде је излаз „Продуцт.ткт“ .



$басенаме /кућа/фахмида/код/продуцт.ткт

Ако желите да преузмете назив датотеке без екстензије, морате да наведете екстензију датотеке као СУФФИКС помоћу наредбе `басенаме`. Овде је проширење .ткт. Покрените следећу команду да бисте уклонили проширење из датотеке.

$басенаме /кућа/фахмида/код/продуцт.ткт .ткт

Пример-2: Коришћење опције „-а“ и НАМЕ

Употреба опције '-а' команде `басенаме` приказана је у овом примеру. Овде се две путање датотека прослеђују као аргументи помоћу наредбе `басенаме`. Свако име датотеке са наставком ће се преузети са путање и одштампати новим редом.

$басенаме -до /кућа/фахмида/индек.хтмл/кућа/фахмида/код/емп.ткт

Пример-3: Употреба опције „-з“ и НАМЕ

Опција „-з“ се користи са командом „басенаме“ за штампање више назива датотека са нулл вредношћу уместо новог реда. Следећа команда користи две опције заједно, „-а“ и „-з“. Овде, два назива датотека, индек.хтмл и емп.ткт штампаће се без размака или новог реда.

$басенаме -тхе /кућа/фахмида/индек.хтмл/кућа/фахмида/код/емп.ткт

Пример 4: Коришћење опције „-с“ и НАМЕ

Следећа команда се може користити као алтернатива СУФФИКС -у са `басенаме`. Проширење датотеке мора да прође са опцијом „-сх“ да бисте уклонили екстензију датотеке из датотеке. Следећи пример ће уклонити екстензију „-сх“ из датотеке, „адд.сх“.

$басенаме .сх додатак.сх

Пример-5: Уклоните екстензију датотеке без СУФФИКС-а

Ако не знате екстензију датотеке коју желите да уклоните из назива датотеке, онда ће вам овај пример помоћи да решите проблем. Направите датотеку под називом реад_филе.сх са следећим кодом за преузимање назива датотеке било које екстензије. команда `сед` се у овом примеру користи за уклањање било које врсте проширења из имена датотеке. Ако покренете скрипту, излаз ће бити „ просек „Након уклањања проширења“ пи '.

реад_филе.сх

#!/бин/басх
# Подесите име датотеке са путањом
назив документа='/хоме/фахмида/цоде/авераге.пи'
# Прочитајте назив датотеке без екстензије помоћу команди 'баснаме' и `сед`
Избацио '$ (басенаме '$ филенаме' | сед 'с/ (.*) ..*/ 1/')'

Покрените скрипту.

$басхреад_филе.сх

Пример-6: Претворите екстензију датотеке из ткт у доцк

Назив датотеке без екстензије мора да претвори датотеку из једне екстензије у другу. Овај пример показује како можете променити екстензију свих текстуалних датотека (.ткт) у датотеке речи (.доцк) помоћу команде `басенаме` у басх скрипти. Направите датотеку под именом, цонверт_филе.сх са следећим кодом. Овде се фор-ин петља користи за читање свих текстуалних датотека помоћу .ткт проширење из тренутног директоријума. Назив датотеке без екстензије се чита наредбом `басенаме` и преименује додавањем .доцк екстензије у свакој итерацији петље.

цонверт_филе.сх

#!/бин/басх
# петља ће читати сваку текстуалну датотеку из тренутног директоријума
заназив документау ``лс *.ткт``
урадити
# Одштампајте назив текстуалне датотеке пре конверзије
Избацио 'Назив датотеке пре конверзије:$ назив датотеке'
# Промените екстензију датотеке ткт у доцк
мв - '$ назив датотеке' '$ (басенаме - '$ филенаме' .ткт).доцк '
Готово

Покрените скрипту.

$басхцонверт_филе.сх

Помоћу команде `лс` проверите да ли су текстуалне датотеке конвертоване или не.

$лс

Пример-7: Прочитајте име датотеке без екстензије помоћу проширења параметра Схелл

Проширење параметра љуске је још један начин читања имена датотеке без екстензије у басх -у. Овај пример приказује употребу проширења параметара љуске. Следећа команда ће сачувати име путање датотеке у променљивој, $ назив документа .

$назив документа='/вар/уср/темп/мифиле.тар.гз'

Следећа команда ће уклонити све типове проширења са путање и сачувати путању датотеке без наставка у променљивој, $ филе1 .

$филе1='$ {име датотеке %%.*}'

Следећа команда ће одштампати име датотеке само са путање. Овде ће излаз бити „ мифиле '.

$Избацио '$ {филе1 ##*/}'

Ако назив датотеке садржи два наставка са две тачке (.) И желите да прочитате назив датотеке уклањањем последњег наставка датотеке, морате користити следећу команду. Покрените следећу команду која складишти путању датотеке у променљиву, $ филе2 уклањањем последњег наставка датотеке.

$филе2='$ {име датотеке%.*}'

Сада покрените следећу команду да бисте одштампали назив датотеке са екстензијом са једном тачком (.). Овде ће излаз бити мифиле.тар.

$Избацио '$ {филе2 ## * /}'

Закључак

Назив датотеке без проширења потребан је у различите сврхе. Неке употребе имена датотеке без проширења објашњене су у овом водичу помоћу неких примера, попут конверзије датотека. Овај водич ће помоћи оним корисницима који су заинтересовани да науче начине одвајања назива датотеке и њеног наставка од путање до датотеке. Овде су објашњена два начина. Корисник може следити било који од ових начина да извуче назив датотеке само из путање датотеке.