Les filnavn uten forlengelse i bash

Les filnavn uten forlengelse i bash
Linux -brukere må jobbe med filer regelmessig for mange formål. Noen ganger trenger brukerne å lese basenavnet på filen bare ved å fjerne filtypen. Filnavn og utvidelse kan skilles og lagres på forskjellige variabler i Linux på flere måter. BASH innebygd kommando- og skallparameterutvidelse kan brukes til å fjerne utvidelsen av filen. Hvordan filnavnet uten utvidelse kan leses ved å bruke måtene nevnt ovenfor blir forklart i denne opplæringen.

Bruker 'basename' -kommando for å lese filnavn

'Basename' -kommando brukes til å lese filnavnet uten utvidelse fra en katalog eller filsti.

Syntaks:

basename name [suffiks]

eller

Basename -alternativ ... Navn ..

Her kan navnet inneholde filnavnet eller filnavnet med full sti. Suffiks er valgfritt og den inneholder filforlengelsesdelen som brukeren ønsker å fjerne. Kommandoen 'Basename' har noen alternativer som er beskrevet nedenfor.

Alternativer

Navn Beskrivelse
-en Det brukes til å passere flere filnavn med sti eller uten bane som kommandoargumenter.
-s Det brukes til å passere utvidelsen som suffiks som må fjerne.
-z Den brukes til å vise flere filnavn ved å skille hver fil med null.
-hjelp Den brukes til å vise informasjonen om å bruke 'basename' -kommando.
-versjon Den brukes til å vise versjonsinformasjonen.

Eksempel 1: Bruke navn og suffiks

Følgende 'basename' -kommando vil hente filnavnet med utvidelse. Suffiks er utelatt fra denne kommandoen. Her er utgangen 'produkt.tekst'.

$ basename/home/fahmida/kode/produkt.tekst

Hvis du vil hente filnavnet uten utvidelse, må du oppgi filutvidelsen som suffiks med 'basename' -kommando. Her er utvidelsen “.tekst". Kjør følgende kommando for å fjerne utvidelsen fra filen.

$ basename/home/fahmida/kode/produkt.tekst .tekst

Eksempel-2: Bruke '-A' alternativ og navn

Bruken av '-a' alternativet for 'basename' -kommando vises i dette eksemplet. Her blir to filstier bestått som argumenter med 'basename' -kommando. Hvert filnavn med utvidelse vil hente fra banen og skrive ut av Newline.

$ basename -a/home/fahmida/indeks.html/home/fahmida/kode/emp.tekst

Eksempel-3: Bruke '-z' alternativ og navn

'-Z' -alternativet brukes med 'basename' -kommando for å skrive ut flere filnavn med nullverdi i stedet for newline. Følgende kommando bruker to alternativer sammen, '-a' og '-z'. Her, to filnavn, indeks.html og emp.tekst Skrives ut uten noe rom eller newline.

$ basename -az/home/fahmida/indeks.html/home/fahmida/kode/emp.tekst

Eksempel-4: Bruke '-S' alternativ og navn

Følgende kommando kan brukes som et alternativ til suffiks med 'basename'. Filforlengelse må passere med '-sh' -alternativet for å fjerne filutvidelsen fra filen. Følgende eksempel vil fjerne utvidelsen, '-sh' fra filen, 'tillegg.sh '.

$ basename -S .SH tillegg.sh

Eksempel-5: Fjern filforlengelse uten suffiks

Hvis du ikke vet utvidelsen av filen du vil fjerne fra filnavnet, vil dette eksemplet hjelpe deg med å løse problemet. Lag en fil som heter read_file.sh med følgende kode for å hente filnavn på enhver utvidelse. 'Sed' -kommando brukes i dette eksemplet for å fjerne alle typer utvidelse fra filnavnet. Hvis du kjører skriptet, vil utdataene være 'gjennomsnitt'Etter å ha fjernet forlengelsen'py'.

read_file.sh

#!/bin/bash
# Angi filnavnet med banen
filnavn = "/home/fahmida/kode/gjennomsnitt.py "
# Les filnavnet uten utvidelse ved å bruke 'BasName' og 'Sed' -kommando
ekko "$ (basename" $ ​​filname "| sed 's/\ (.*\)\… */\1/')"

Kjør manuset.

$ bash read_file.sh

Eksempel-6: Konverter filutvidelse fra TXT til DOCX

Filnavn uten utvidelse må konvertere filen fra en utvidelse til en annen. Dette eksemplet viser at hvordan du kan endre utvidelsen av alle tekstfiler (.txt) inn i ordfilene (.docx) ved å bruke 'basename' -kommando i bash -skriptet. Lag en fil som heter, konvertere_file.sh med følgende kode. Her brukes en for-i-loop til å lese alle tekstfilene med “.tekst" utvidelse fra gjeldende katalog. Filnavnet uten utvidelse blir lest av 'basename' -kommando og omdøpt ved å legge til “.docx ”utvidelse i hver iterasjon av loopen.

konvertere_file.sh

#!/bin/bash
# Loopen vil lese hver tekstfil fra gjeldende katalog
for filnavn i 'ls *.tekst'
gjøre
# Skriv ut tekstfilnavnet før konvertering
ekko "filnavn før konvertering: $ filnavn"
# Endre utvidelsen av filen TXT til DOCX
MV - "$ filnavn" "$ (basename -" $ filnavn " .tekst).Docx "
Ferdig

Kjør manuset.

$ bash convert_file.sh

Sjekk tekstfilene konverteres eller ikke ved å bruke 'LS' -kommandoen.

$ ls

Eksempel-7: Les filnavn uten utvidelse ved bruk av Shell-parameterutvidelse

Skallparameterutvidelse er en annen måte å lese filnavnet uten forlengelse i bash. Dette eksemplet viser bruken av utvidelse av skallparameter. Følgende kommando vil lagre filsti -navnet i variabelen, $filnavn.

$ filnavn = "/var/usr/temp/myfile.tjære.gz "

Følgende kommando vil fjerne alle typer utvidelse fra banen og lagre filstien uten utvidelse i variabelen, $ File1.

$ file1 = "$ filnavn %%.* "

Følgende kommando vil bare skrive ut filnavnet fra banen. Her vil utdataene 'myfile'.

$ ekko "$ file1 ##*/"

Hvis filnavnet inneholder to utvidelser med to prikker (.) Og du vil lese filnavnet ved å fjerne den siste utvidelsen av filen, så må du bruke følgende kommando. Kjør følgende kommando som lagrer filstien i variabelen, $ File2 Ved å fjerne den siste utvidelsen av filen.

$ file2 = "$ filnavn%.* "

Kjør nå følgende kommando for å skrive ut filnavnet med en prikk (.) Utvidelse. Her vil utgangen være “Myfile.tjære".

$ ECHO "$ File2 ##*/"

Konklusjon

Filnavn uten forlengelse er nødvendig for forskjellige formål. Noen bruksområder for filnavn uten utvidelse blir forklart i denne opplæringen ved å bruke noen eksempler som filkonvertering. Denne opplæringen vil hjelpe de brukerne som er interessert i å lære måtene å skille filnavnet og utvidelsen fra filstien. To måter blir forklart her. Brukeren kan følge noen av disse måtene å trekke ut filnavnet bare fra filstien.