Les filnavn uten utvidelse i Bash

Read Filename Without Extension Bash



Linux -brukere må jobbe med filer regelmessig for mange formål. Noen ganger trenger brukerne å lese filnavnet bare ved å fjerne filtypen. Filnavn og utvidelse kan skilles og lagres på forskjellige variabler i Linux på flere måter. Bash innebygd kommando og utvidelse av skallparametere kan brukes til å fjerne filtypen. Hvordan filnavnet uten utvidelse kan leses ved å bruke måtene nevnt ovenfor, er forklart i denne opplæringen.

Bruke kommandoen 'basename' for å lese filnavn

kommandoen `basename` brukes til å lese filnavnet uten utvidelse fra en katalog eller filbane.







Syntaks:



basenavnNAVN[SUFFIKS]

eller



basenavnOPTION ... NAME ...

Her kan NAME inneholde filnavnet eller filnavnet med full bane. SUFFIX er valgfritt, og den inneholder filtypen som brukeren ønsker å fjerne. kommandoen `basename` har noen alternativer som er beskrevet nedenfor.





Alternativer

Navn Beskrivelse
-til Den brukes til å sende flere filnavn med bane eller uten bane som kommandoargumenter.
-s Den brukes til å passere utvidelsen som suffiks som må fjernes.
-Med Den brukes til å vise flere filnavn ved å skille hver fil med null.
-hjelp Den brukes til å vise informasjonen om bruk av kommandoen 'basename'.
-versjon Den brukes til å vise versjonsinformasjonen.

Eksempel 1: Bruke NAME og SUFFIX

Følgende kommando `basename` vil hente filnavnet med utvidelse. SUFFIX er utelatt fra denne kommandoen. Her er utgangen ‘Product.txt’ .



$basenavn /hjem/fahmida/kode/product.txt

Hvis du vil hente filnavnet uten utvidelse, må du gi filtypen SUFFIX med kommandoen `basename`. Her er utvidelsen .txt. Kjør følgende kommando for å fjerne utvidelsen fra filen.

$basenavn /hjem/fahmida/kode/product.txt .txt

Eksempel-2: Bruk ‘-a’ -alternativet og NAME

Bruken av '-a' alternativet for 'basename' kommando er vist i dette eksemplet. Her blir to filbaner sendt som argumenter med kommandoen `basename`. Hvert filnavn med utvidelse hentes fra banen og skrives ut med ny linje.

$basenavn -til /hjem/fahmida/index.html/hjem/fahmida/kode/emp.txt

Eksempel-3: Bruk ‘-z’ alternativet og NAME

'-Z' alternativet brukes med kommandoen 'basename' for å skrive ut flere filnavn med nullverdi i stedet for ny linje. Følgende kommando bruker to alternativer sammen, '-a' og '-z'. Her to filnavn, index.html og emp.txt vil skrive ut uten mellomrom eller ny linje.

$basenavn -de /hjem/fahmida/index.html/hjem/fahmida/kode/emp.txt

Eksempel-4: Bruk ‘-s’ -alternativet og NAME

Følgende kommando kan brukes som et alternativ til SUFFIX med `basename`. Filutvidelsen må passere med ‘-sh’ alternativet for å fjerne filtypen fra filen. Følgende eksempel vil fjerne utvidelsen ‘-sh’ fra filen ‘addition.sh’.

$basenavn -s.sh tillegg.sh

Eksempel-5: Fjern filtypen uten SUFFIX

Hvis du ikke kjenner filtypen du vil fjerne fra filnavnet, vil dette eksemplet hjelpe deg med å løse problemet. Lag en fil med navnet read_file.sh med følgende kode for å hente filnavnet til en hvilken som helst utvidelse. `sed` -kommandoen brukes i dette eksemplet for å fjerne alle typer utvidelser fra filnavnet. Hvis du kjører skriptet, blir utgangen ' gjennomsnitt 'Etter å ha fjernet utvidelsen' py '.

read_file.sh

#!/bin/bash
# Angi filnavnet med banen
filnavn='/home/fahmida/code/average.py'
# Les filnavnet uten utvidelse ved å bruke kommandoen 'basname' og 'sed'
kastet ut '$ (grunnnavn '$ filnavn' | sed 's/ (.*)..*/1/')'

Kjør skriptet.

$bashread_file.sh

Eksempel 6: Konverter filtypen fra txt til docx

Filnavn uten utvidelse må konvertere filen fra en utvidelse til en annen. Dette eksemplet viser hvordan du kan endre utvidelsen av alle tekstfiler (.txt) til ordfilene (.docx) ved å bruke kommandoen 'basename' i bash -skriptet. Lag en fil med navnet, convert_file.sh med følgende kode. Her brukes en for-in loop til å lese alle tekstfilene med .tekst utvidelse fra den nåværende katalogen. Filnavnet uten utvidelse leses av kommandoen `basename` og omdøpes ved å legge til .docx -utvidelse i hver iterasjon av løkken.

convert_file.sh

#!/bin/bash
# løkken vil lese hver tekstfil fra den nåværende katalogen
tilfilnavni ``ls *.tekst``
gjøre
# Skriv ut tekstfilnavnet før konvertering
kastet ut 'Filnavn før konvertering:$ filnavn'
# Endre filtxt -utvidelsen til docx
mv - '$ filnavn' '$ (grunnnavn - '$ filnavn' .txt).docx '
gjort

Kjør skriptet.

$bashconvert_file.sh

Kontroller at tekstfilene er konvertert eller ikke ved å bruke kommandoen `ls '.

$ls

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

Shell -parameterutvidelse er en annen måte å lese filnavnet uten utvidelse på bash. Dette eksemplet viser bruken av shell -parameterutvidelse. Følgende kommando lagrer filbanenavnet i variabelen $ filnavn .

$filnavn='/var/usr/temp/myfile.tar.gz'

Følgende kommando vil fjerne alle typer utvidelser fra banen og lagre filbanen uten utvidelse i variabelen, $ file1 .

$fil 1='$ {filnavn %%.*}'

Følgende kommando vil bare skrive ut filnavnet fra banen. Her vil utgangen ‘ min fil '.

$kastet ut '$ {file1 ##*/}'

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

$fil2='$ {filnavn%.*}'

Kjør nå følgende kommando for å skrive ut filnavnet med en prikk (.) Forlengelse. Her vil utgangen være myfile.tar.

$kastet ut '$ {file2 ## * /}'

Konklusjon

Filnavn uten utvidelse er nødvendig for forskjellige formål. Noen bruksområder for filnavn uten utvidelse forklares i denne opplæringen ved å bruke noen eksempler, for eksempel filkonvertering. Denne opplæringen vil hjelpe brukerne som er interessert i å lære hvordan man skiller filnavn og filtype fra filbanen. To måter er forklart her. Brukeren kan bare følge noen av disse måtene for å trekke ut filnavnet fra filbanen.