Přečtěte si název souboru bez přípony v Bash

Read Filename Without Extension Bash



Uživatelé Linuxu musí se soubory pracovat pravidelně pro mnoho účelů. Někdy uživatelé potřebují přečíst základní název souboru pouze odstraněním přípony souboru. Název souboru a příponu lze v Linuxu oddělit a uložit do různých proměnných několika způsoby. K odebrání přípony souboru lze použít vestavěný příkaz Bash a parametr parametru shellu. V tomto kurzu je vysvětleno, jak lze název souboru bez přípony přečíst pomocí výše uvedených způsobů.

Ke čtení názvu souboru použijte příkaz `basename`

Příkaz `basename` se používá ke čtení názvu souboru bez přípony z adresáře nebo cesty k souboru.







Syntax:



základní jménoNÁZEV[PŘÍPONA]

nebo



základní jménoMOŽNOST ... NÁZEV ...

Zde NAME může obsahovat název souboru nebo název souboru s úplnou cestou. SUFFIX je volitelný a obsahuje část s příponou souboru, kterou chce uživatel odebrat. Příkaz `basename` má některé možnosti, které jsou popsány níže.





Možnosti

název Popis
-na Používá se k předání více názvů souborů s cestou nebo bez cesty jako argumenty příkazu.
-s Používá se k předání rozšíření jako přípony, kterou je třeba odebrat.
-S Slouží k zobrazení více názvů souborů oddělením každého souboru hodnotou null.
-Pomoc Slouží k zobrazení informací o použití příkazu `basename`.
-verze Slouží k zobrazení informací o verzi.

Příklad 1: Použití NAME a SUFFIX

Následující příkaz `basename` načte název souboru s příponou. SUFFIX je v tomto příkazu vynechán. Zde je výstup „Product.txt“ .



$základní jméno /Domov/fahmida/kód/product.txt

Pokud chcete načíst název souboru bez přípony, musíte zadat příponu souboru jako SUFFIX s příkazem `basename`. Zde je přípona .txt. Spuštěním následujícího příkazu odeberete příponu ze souboru.

$základní jméno /Domov/fahmida/kód/product.txt .txt

Příklad 2: Použití volby „-a“ a NAME

V tomto příkladu je ukázáno použití volby '-a' příkazu `basename`. Zde jsou jako argumenty s příkazem `basename` předány dvě cesty k souboru. Každý název souboru s příponou se načte z cesty a vytiskne pomocí nového řádku.

$základní jméno -na /Domov/fahmida/index.html/Domov/fahmida/kód/emp.txt

Příklad 3: Použití možnosti „-z“ a NAME

Možnost -z se používá s příkazem `basename` k tisku více názvů souborů s hodnotou null místo nového řádku. Následující příkaz používá dvě možnosti dohromady, ‘-a’ a ‘-z’. Zde dva názvy souborů, index.html a emp.txt vytiskne bez mezery nebo nového řádku.

$základní jméno -ten /Domov/fahmida/index.html/Domov/fahmida/kód/emp.txt

Příklad-4: Použití volby „-s“ a NAME

Následující příkaz lze použít jako alternativu SUFFIX s `basename`. Chcete-li příponu souboru odebrat ze souboru, musí projít přípona „-sh“. Následující příklad odebere příponu „-sh“ ze souboru, „addition.sh“.

$základní jméno -s.sh navíc.sh

Příklad-5: Odeberte příponu souboru bez SUFFIX

Pokud neznáte příponu souboru, který chcete z názvu souboru odstranit, pak vám tento příklad pomůže problém vyřešit. Vytvořte soubor s názvem read_file.sh s následujícím kódem k načtení názvu souboru jakékoli přípony. Příkaz `sed` se v tomto příkladu používá k odstranění jakéhokoli typu přípony z názvu souboru. Pokud spustíte skript, výstup bude „ průměrný „Po odstranění rozšíření“ py '.

read_file.sh

#!/bin/bash
# Nastavte název souboru s cestou
název souboru='/home/fahmida/code/average.py'
# Přečtěte si název souboru bez přípony pomocí příkazů „basname“ a „sed“
vyhodil '$ (basename '$ filename' | sed 's/ (.*) ..*/ 1/')'

Spusťte skript.

$bashread_file.sh

Příklad-6: Převod přípony souboru z txt na docx

Název souboru bez přípony musí převést soubor z jedné přípony na jinou. Tento příklad ukazuje, že pomocí příkazu `basename` ve skriptu bash můžete změnit příponu všech textových souborů (.txt) na soubory slov (.docx). Vytvořte soubor s názvem, convert_file.sh s následujícím kódem. Zde se smyčka pro vstup používá ke čtení všech textových souborů pomocí .txt rozšíření z aktuálního adresáře. Název souboru bez přípony se čte příkazem `basename` a přejmenuje se přidáním přípony .docx v každé iteraci smyčky.

convert_file.sh

#!/bin/bash
# smyčka přečte každý textový soubor z aktuálního adresáře
pronázev souboruv ``ls *.txt``
dělat
# Před převodem vytiskněte textový název souboru
vyhodil „Název souboru před převodem:$ název_souboru'
# Změňte příponu souboru txt na docx
mv - '$ název_souboru' '$ (basename - '$ filename' .txt).docx '
Hotovo

Spusťte skript.

$bashconvert_file.sh

Pomocí příkazu `ls` zkontrolujte, zda jsou textové soubory převedeny nebo ne.

$ls

Příklad-7: Čtení názvu souboru bez přípony pomocí rozšíření parametru Shell

Rozšíření parametrů prostředí je další způsob, jak v bash číst název souboru bez přípony. Tento příklad ukazuje použití rozšíření parametrů shellu. Následující příkaz uloží cestu k souboru do proměnné $ název souboru .

$název souboru='/var/usr/temp/myfile.tar.gz'

Následující příkaz odebere z cesty všechny typy přípon a uloží cestu souboru bez přípony do proměnné, $ soubor1 .

$soubor 1='$ {název souboru %%.*}'

Následující příkaz vytiskne název souboru pouze z cesty. Zde bude výstup „ můj soubor '.

$vyhodil '$ {file1 ##*/}'

Pokud název souboru obsahuje dvě přípony se dvěma tečkami (.) A chcete název souboru přečíst odstraněním poslední přípony souboru, musíte použít následující příkaz. Spusťte následující příkaz, který uloží cestu k souboru do proměnné, $ soubor2 odstraněním poslední přípony souboru.

$soubor2='$ {název souboru%.*}'

Nyní spusťte následující příkaz a vytiskněte název souboru s příponou s jednou tečkou (.). Zde bude výstup myfile.tar.

$vyhodil '$ {file2 ## * /}'

Závěr

Název souboru bez přípony je vyžadován pro různé účely. Některá použití názvu souboru bez přípony jsou v tomto kurzu vysvětlena pomocí několika příkladů, jako je například převod souboru. Tento tutoriál pomůže uživatelům, kteří mají zájem, naučit se způsoby, jak oddělit název souboru a příponu od cesty k souboru. Zde jsou vysvětleny dva způsoby. Uživatel může libovolným z těchto způsobů extrahovat název souboru pouze z cesty k souboru.