esittely
On monia syitä, miksi saatat haluta purkaa tiedostonimen ja tiedostotunnisteen Bashissa:
-
Tiedoston nimen tai tunnisteen muokkaaminen – Haluat ehkä purkaa tiedostonimen tai tunnisteen, jotta voit muokata sitä, kuten lisätä etuliitettä tai päätettä tiedoston nimeen tai muuttaa tiedostopäätettä.
-
Voit luoda tiedoston ainutlaatuisella nimellä – Haluat ehkä purkaa tiedostonimen ja tunnisteen luodaksesi uuden tiedoston yksilöllisellä nimellä, esimerkiksi lisäämällä aikaleiman tai satunnaisluvun tiedoston nimeen.
-
Tiedoston nimen tai tunnisteen käyttäminen komentosarjassa tai komennossa – Haluat ehkä purkaa tiedostonimen tai tunnisteen, jotta voit käyttää sitä komentosarjan tai komennon argumenttina tai syötteenä, esimerkiksi välittääksesi sen ohjelmalle tai luodaksesi tiedoston, jolla on sama nimi kuin hakemistossa.
-
Tietojen poimiminen tiedoston nimestä tai tarkenteesta – Haluat ehkä purkaa tiedostonimen tai tunnisteen, jotta voit poimia siitä tietoja, kuten päivämäärän tai tiedostotyypin.
Tässä artikkelissa tarkastellaan kolmea yleisintä tapaa, joilla voit purkaa tiedostonimen ja tiedostotunnisteen Bashissa. Tarkastelemme jokaista niistä ja annamme sinulle edut ja haitat, jotta voit tehdä valistuneen päätöksen siitä, mikä lähestymistapa sopii sinulle parhaiten.
Menetelmä 1: perusnimi Komento
- basename
-komentoa voidaan käyttää tiedostonimen ja tunnisteen purkamiseen tiedostopolusta:
filename=$(basename /path/to/file.txt)
echo $filename
Vaikka tämä menetelmä on melko yksinkertainen ja helppokäyttöinen, emme valitettavasti voi purkaa vain tiedoston nimeä (ilman tunnistetta) ilman jälkikäsittelyä.
Voit myös käyttää dirname
komento purkaa hakemistopolun erikseen:
directory=$(dirname /path/to/file.txt)
echo $directory
Plussat:
- Helppo käyttää
- Käsittelee tiedostonimiä, joissa on välilyöntejä, oikein
Miinukset:
- Purkaa vain tiedostonimen eikä voi purkaa laajennusta erikseen ilman lisäkäsittelyä
Tapa 2: Parametrilaajennuksen käyttäminen
Bash tarjoaa ominaisuuden nimeltä parametrin laajennus, jonka avulla voit poimia muuttujan osia käyttämällä erityistä syntaksia. Voit esimerkiksi käyttää seuraavaa syntaksia poimimaan tiedostonimen ja tunnisteen muuttujaan tallennetusta tiedostopolusta:
filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename
Voit myös käyttää parametrin laajennusta poimiaksesi laajennuksen erikseen:
extension=${filename##*.}
echo $extension
Plussat:
- Joustava
- Voi purkaa sekä tiedostonimen että tunnisteen erikseen,
- Käsittelee tiedostonimiä, joissa on välilyöntejä, oikein
Miinukset:
- Vaatii muuttujan tiedostopolun tallentamiseen
Menetelmä 3: awk komento
- awk
komento on tehokas tekstinkäsittelytyökalu, jolla voidaan purkaa osia merkkijonosta. Voit esimerkiksi käyttää seuraavaa syntaksia poimimaan tiedostonimen ja tunnisteen tiedostopolusta:
filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename
Tutustu käytännönläheiseen, käytännölliseen Gitin oppimisoppaaseemme, jossa on parhaat käytännöt, alan hyväksymät standardit ja mukana tuleva huijauslehti. Lopeta Git-komentojen googlailu ja oikeastaan oppia se!
Voit myös käyttää awk
laajennuksen purkaminen erikseen:
extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension
Plussat:
- Voimakas
- Voi purkaa sekä tiedostonimen että tunnisteen erikseen
- Käsittelee tiedostonimiä, joissa on välilyöntejä, oikein
Miinukset:
- Syntaksi saattaa olla tuntematon joillekin käyttäjille
- Edellyttää tiedostopolun putkeamista
awk
Yhteenveto
Kaiken kaikkiaan tiedostonimen ja tiedostotunnisteen purkaminen Bashissa voi olla hyödyllinen tekniikka tiedostojen käsittelyssä ja erilaisten tehtävien suorittamisessa Bash-kuoressa.
Jokaisella mainituista menetelmistä on omat etunsa ja haittansa, ja paras valinta riippuu erityistarpeistasi ja mieltymyksistäsi. Usein on hyödyllistä tuntea useita lähestymistapoja, jotta voit valita tilanteeseesi sopivimman.