Lue tiedostonimi ilman laajennusta Bashista

Read Filename Without Extension Bash



Linux -käyttäjien on työskenneltävä tiedostojen kanssa säännöllisesti moniin tarkoituksiin. Joskus käyttäjien täytyy lukea tiedoston perusnimi vain poistamalla tiedostopääte. Tiedostonimi ja laajennus voidaan erottaa ja tallentaa eri muuttujiin Linuxissa useilla tavoilla. Bashin sisäänrakennettua komentoa ja shell-parametrin laajennusta voidaan käyttää tiedoston laajennuksen poistamiseen. Tässä opetusohjelmassa selitetään, kuinka tiedostonimi ilman laajennusta voidaan lukea käyttämällä edellä mainittuja tapoja.

Tiedostonimen lukeminen basename -komennolla

'basename' -komentoa käytetään tiedostonimen lukemiseen ilman laajennusta hakemistosta tai tiedostopolusta.







Syntaksi:



perusnimiNIMI[SUFFIX]

tai



perusnimiVAIHTOEHTO ... NIMI ...

Tässä NAME voi sisältää tiedostonimen tai tiedostonimen täydellä polulla. SUFFIX on valinnainen ja se sisältää tiedostopääteosan, jonka käyttäjä haluaa poistaa. 'basename' -komennolla on joitain vaihtoehtoja, jotka on kuvattu alla.





Asetukset

Nimi Kuvaus
-kohteeseen Sitä käytetään useiden tiedostonimien välittämiseen polulla tai ilman polkua komentoargumenteina.
-s Sitä käytetään laajennuksen välittämiseen jälkiliitteenä, joka on poistettava.
-Kanssa Sitä käytetään useiden tiedostonimien näyttämiseen erottamalla jokainen tiedosto nollasta.
-auta Sitä käytetään 'basename' -komennon tietojen näyttämiseen.
-versio Sitä käytetään versiotietojen näyttämiseen.

Esimerkki 1: NAME ja SUFFIX

Seuraava 'basename' -komento hakee tiedostonimen, jonka tunniste on. SUFFIX jätetään pois tästä komennosta. Tässä lähtö on 'Product.txt' .



$perusnimi /Koti/fahmida/koodi/product.txt

Jos haluat hakea tiedostonimen ilman laajennusta, sinun on annettava tiedostopääte SUFFIX komennolla 'basename'. Tässä laajennus on .txt. Poista laajennus tiedostosta suorittamalla seuraava komento.

$perusnimi /Koti/fahmida/koodi/product.txt .txt

Esimerkki 2: Käyttämällä vaihtoehtoa -a ja NAME

Tässä esimerkissä näytetään 'basename' -komennon '-a' -vaihtoehdon käyttö. Tässä kaksi tiedostopolkua välitetään argumentteina basename -komennolla. Jokainen tiedostonimi, jolla on laajennus, haetaan polulta ja tulostetaan uudella rivillä.

$perusnimi -kohteeseen /Koti/fahmida/index.html/Koti/fahmida/koodi/emp.txt

Esimerkki-3: Käytä -z-vaihtoehtoa ja NAME

'-Z' -vaihtoehtoa käytetään 'basename' -komennon kanssa tulostettaessa useita tiedostonimiä nolla-arvolla uuden rivin sijaan. Seuraava komento käyttää kahta vaihtoehtoa yhdessä, '-a' ja '-z'. Tässä kaksi tiedostonimeä, index.html ja emp.txt tulostaa ilman tilaa tai uutta riviä.

$perusnimi -he /Koti/fahmida/index.html/Koti/fahmida/koodi/emp.txt

Esimerkki 4: '-s' -vaihtoehdon ja NIMEN käyttäminen

Seuraavaa komentoa voidaan käyttää vaihtoehtona SUFFIX: lle, jonka nimi on 'basename'. Tiedostopäätteen on läpäistävä -sh-vaihtoehto, jotta tiedostopääte poistetaan tiedostosta. Seuraava esimerkki poistaa tiedostopäätteen '-sh' tiedostosta 'lisäys.sh'.

$perusnimi -s.sh lisäys. sh

Esimerkki 5: Poista tiedostopääte ilman SUFFIXia

Jos et tiedä tiedoston laajennusta, jonka haluat poistaa tiedostonimestä, tämä esimerkki auttaa sinua ratkaisemaan ongelman. Luo tiedosto nimeltä read_file.sh seuraavalla koodilla hakea minkä tahansa laajennuksen tiedostonimi. `` sed '' -komentoa käytetään tässä esimerkissä poistamaan minkä tahansa laajennuksen tiedostonimestä. Jos suoritat komentosarjan, tulos on ' keskiverto 'Laajennuksen poistamisen jälkeen' py ''.

read_file.sh

#!/bin/bash
# Aseta tiedostonimi polulla
Tiedoston nimi='/home/fahmida/code/average.py'
# Lue tiedostonimi ilman laajennusta käyttämällä 'basname' ja 'sed' -komentoja
heitti pois ''$ (perusnimi '$ tiedostonimi' | sed 's/ (.*) ..*/ 1/')'

Suorita komentosarja.

$lyödäread_file.sh

Esimerkki 6: Muunna tiedostopääte txt-tiedostosta docx-muotoon

Tiedostonimen ilman laajennusta täytyy muuntaa tiedosto laajennuksesta toiseen. Tämä esimerkki osoittaa, kuinka voit muuttaa kaikkien tekstitiedostojen (.txt) laajennuksen sanatiedostoiksi (.docx) käyttämällä bash -komentosarjan 'basename' -komentoa. Luo tiedosto nimeltä convert_file.sh seuraavalla koodilla. Tässä for-in-silmukkaa käytetään kaikkien tekstitiedostojen lukemiseen .txt laajennus nykyisestä hakemistosta. Tiedostonimi ilman laajennusta lukee 'basename' -komennolla ja nimeää sen uudelleen lisäämällä .docx -laajennuksen jokaiseen silmukan iteraatioon.

convert_file.sh

#!/bin/bash
# silmukka lukee jokaisen tekstitiedoston nykyisestä hakemistosta
vartenTiedoston nimisisään ``ls *.txt``
tehdä
# Tulosta tekstitiedoston nimi ennen muuntamista
heitti pois 'Tiedostonimi ennen muuntamista:$ tiedostonimi''
# Muuta tiedoston txt laajennukseksi docx
mv - ''$ tiedostonimi'' ''$ (basename - '$ tiedostonimi' .txt).docx '
tehty

Suorita komentosarja.

$lyödäconvert_file.sh

Tarkista tekstitiedostot muunnettuna käyttämällä ls -komentoa.

$ls

Esimerkki 7: Lue tiedostonimi ilman laajennusta Shell-parametrin laajennuksella

Shell -parametrin laajennus on toinen tapa lukea tiedostonimi ilman laajennusta bashissa. Tämä esimerkki näyttää kuoriparametrien laajennuksen käyttötavat. Seuraava komento tallentaa tiedoston polun nimen muuttujaan $ Tiedoston nimi .

$Tiedoston nimi='/var/usr/temp/myfile.tar.gz'

Seuraava komento poistaa kaikki laajennustyypit polusta ja tallentaa tiedostopolun ilman laajennusta muuttujaan, $ tiedosto 1 .

$tiedosto 1=''$ {tiedostonimi %%.*}''

Seuraava komento tulostaa tiedostonimen vain polusta. Tässä tulos ' minun tiedostoni ''.

$heitti pois ''$ {file1 ##*/}''

Jos tiedostonimi sisältää kaksi laajennusta, joissa on kaksi pistettä (.) Ja haluat lukea tiedostonimen poistamalla tiedoston viimeisen laajennuksen, sinun on käytettävä seuraavaa komentoa. Suorita seuraava komento, joka tallentaa tiedostopolun muuttujaan, $ tiedosto2 poistamalla tiedoston viimeisen laajennuksen.

$tiedosto2=''$ {tiedostonimi%.*}''

Suorita nyt seuraava komento tulostaaksesi tiedostonimen, jossa on yksi piste (.). Tässä tulos on myfile.tar.

$heitti pois ''$ {file2 ## * /}''

Johtopäätös

Tiedostonimi ilman laajennusta tarvitaan eri tarkoituksiin. Tässä opetusohjelmassa selitetään joitain ilman laajennusta käytetyn tiedostonimen käyttötapoja käyttämällä esimerkkejä, kuten tiedoston muuntamista. Tämä opetusohjelma auttaa kiinnostuneita käyttäjiä oppimaan tapoja erottaa tiedostonimi ja laajennus tiedostopolusta. Tässä selitetään kaksi tapaa. Käyttäjä voi poimia tiedostonimen vain tiedostopolusta noudattamalla mitä tahansa näistä tavoista.