Kā atdalīt faila nosaukumu un paplašinājumu programmā Bash

Bash

Ievads:

Strādājot ar failiem programmā Bash, iespējams, bieži būs jāatdala faila nosaukums no tā paplašinājuma. Izplatīta pieeja izmanto komandu “cut”, taču šī metode var neizdoties, ja failu nosaukumi satur vairākus punktus.

Piemēram, faila nosaukums, piemēram, "a.b.js", tiktu nepareizi sadalīts "a" un "b.js", nevis "a.b" un "js". Lai gan Python nodrošina vienkāršu risinājumu ar "os.path.splitext()", Python izmantošana ne vienmēr ir visefektīvākā iespēja. Šajā rakstā ir apskatītas labākas metodes šī uzdevuma veikšanai programmā Bash.

Komanda Apraksts
${variable%.*} Parametra paplašināšana, lai noņemtu paplašinājumu no faila nosaukuma.
${variable##*.} Parametra paplašināšana, lai izvilktu paplašinājumu no faila nosaukuma.
awk -F. Iestata lauku atdalītāju uz punktu, ko izmanto faila nosaukuma sadalīšanai.
OFS="." Izvades lauka atdalītājs awk, ko izmanto, lai rekonstruētu faila nosaukumu bez paplašinājuma.
NF-- Samazina lauku skaitu par vienu awk, efektīvi noņemot paplašinājumu.
${BASH_REMATCH} Masīvs, kas satur atbilstības no regulārās izteiksmes valodā Bash.
local variable Deklarē mainīgo ar lokālu darbības jomu Bash funkcijā.

Detalizēts Bash risinājumu sadalījums

Piedāvātie skripti piedāvā dažādas metodes faila nosaukuma un tā paplašinājuma atdalīšanai Bash. Pirmais skripts izmanto Bash parametru paplašināšanu. Mainīgais noņem paplašinājumu, noņemot visu no pēdējā perioda līdz virknes beigām, kamēr fiksē pagarinājumu, ņemot visu pēc pēdējā perioda. Šī metode ir vienkārša un efektīva lielākajai daļai failu nosaukumu struktūru. Otrais skripts izmanto , spēcīgs teksta apstrādes rīks Unix līdzīgās vidēs. Iestatot lauku atdalītāju uz punktu, izmantojot -F., tas ļauj sadalīt faila nosaukumu daļās. Izvades lauka atdalītājs, , un lauku skaita samazināšana ar ir paņēmieni faila nosaukuma atkārtotai salikšanai bez tā paplašinājuma.

Trešais skripts izmanto regulāras izteiksmes valodā Bash, izmantojot piesaisti lai tvertu grupas regulārā izteiksmē. Šis skripts izmanto modeli, kas sadala faila nosaukumu divās grupās: viena pamata nosaukumam un viena paplašinājumam. Visbeidzot, pielāgotās funkcijas skripts iekapsulē parametru paplašināšanas loģiku funkcijā, uzlabojot koda atkārtotu izmantošanu un lasāmību. Tā izmanto deklarācijas, lai saglabātu mainīgo tvērumu funkcijā, novēršot neparedzētas blakusparādības lielākos skriptos. Katra metode demonstrē atšķirīgu pieeju vienas un tās pašas problēmas risināšanai, parādot Bash skriptu daudzpusību un jaudu.

Parametru paplašināšanas izmantošana programmā Bash

Bash skriptēšana

#!/bin/bash
# Script to extract filename and extension using parameter expansion
FILE="a.b.js"
FILENAME="${FILE%.*}"
EXTENSION="${FILE##*.}"
echo "Filename: $FILENAME"
echo "Extension: $EXTENSION"

Awk izmantošana, lai atdalītu faila nosaukumu un paplašinājumu

Bash ar Awk

#!/bin/bash
# Script to extract filename and extension using awk
FILE="a.b.js"
FILENAME=$(echo "$FILE" | awk -F. '{OFS="."; NF--; print $0}')
EXTENSION=$(echo "$FILE" | awk -F. '{print $NF}')
echo "Filename: $FILENAME"
echo "Extension: $EXTENSION"

Regulāro izteiksmju izmantošana programmā Bash

Bash skriptēšana ar regulāro izteiksmi

#!/bin/bash
# Script to extract filename and extension using regex
FILE="a.b.js"
[[ "$FILE" =~ (.*)\.(.*) ]]
FILENAME=${BASH_REMATCH[1]}
EXTENSION=${BASH_REMATCH[2]}
echo "Filename: $FILENAME"
echo "Extension: $EXTENSION"

Pielāgotas funkcijas izmantošana programmā Bash

Bash skriptēšana ar pielāgotu funkciju

#!/bin/bash
# Function to extract filename and extension
extract_filename_extension() {
  local file="$1"
  echo "Filename: ${file%.*}"
  echo "Extension: ${file##*.}"
}
# Call the function with a file
extract_filename_extension "a.b.js"

Alternatīvu failu manipulācijas metožu izpēte programmā Bash

Papildus jau apspriestajām metodēm programmā Bash ir arī citi noderīgi paņēmieni, lai manipulētu ar failu nosaukumiem un paplašinājumiem. Viena no šādām metodēm ietver izmantošanu un komandas. var izmantot, lai izvilktu faila nosaukumu no ceļa, kamēr dirname izgūst direktorija ceļu. Apvienojot šīs komandas ar parametru paplašināšanu, var efektīvi atdalīt failu nosaukumus un paplašinājumus. Piemēram, izmantojot noņem paplašinājumu no faila nosaukuma. Šī pieeja ir īpaši noderīga, strādājot ar pilniem failu ceļiem, nevis tikai ar failu nosaukumiem.

Vēl viena metode ietver izmantošanu , spēcīgs straumes redaktors teksta filtrēšanai un pārveidošanai. Izveidojot atbilstošas ​​regulāras izteiksmes, var izolēt faila nosaukumu un paplašinājumu. Piemēram, komanda sadala faila nosaukumu un paplašinājumu, ievietojot tos atsevišķās uztveršanas grupās. Šī metode ir elastīga un var apstrādāt sarežģītas failu nosaukumu struktūras. Šo papildu rīku un metožu izpēte paplašina jūsu iespējas manipulēt ar failu datiem programmā Bash, nodrošinot stabilus risinājumus dažādiem skriptēšanas scenārijiem.

Bieži uzdotie jautājumi par Bash failu manipulācijām

  1. Kāds ir mērķis komanda?
  2. Tas noņem paplašinājumu no faila nosaukuma, noņemot visu pēc pēdējā perioda.
  3. Kā darbojas komanddarbs?
  4. Tas izvelk paplašinājumu, ņemot visu pēc pēdējā punkta faila nosaukumā.
  5. Ko dara darīt norādītajā skriptā?
  6. Tas iestata lauku atdalītāju uz punktu, ļaujot faila nosaukumu sadalīt daļās.
  7. Kāpēc izmantot in an scenārijs?
  8. Tas samazina lauku skaitu par vienu, efektīvi noņemot paplašinājumu no faila nosaukuma.
  9. Kā regulārās izteiksmes palīdz izvilkt faila nosaukumu un paplašinājumu?
  10. Tie nodrošina modeļu saskaņošanu un grupēšanu, kas var izolēt dažādas faila nosaukuma daļas.
  11. Kādas ir pielāgotas funkcijas izmantošanas priekšrocības programmā Bash?
  12. Pielāgota funkcija uzlabo koda atkārtotu izmantošanu un lasāmību, padarot skriptus modulārākus.
  13. Kā palīdzēt ar failu nosaukumiem?
  14. Tas izvelk faila nosaukumu no pilna faila ceļa, pēc izvēles noņemot paplašinājumu.
  15. Var izmantot faila nosaukuma manipulācijām?
  16. Jā, var izmantot regulāras izteiksmes, lai pārveidotu un izolētu failu nosaukumu daļas.

Faila nosaukumu un paplašinājumu iegūšanas risinājumu apkopošana

Visbeidzot, failu nosaukumu un paplašinājumu izvilkšanu programmā Bash var efektīvi panākt, izmantojot dažādas metodes, no kurām katra ir piemērota dažādām vajadzībām un vēlmēm. Neatkarīgi no tā, vai tiek izmantotas parametru paplašināšanas, awk, sed vai pielāgotas funkcijas, šīs metodes piedāvā elastīgus un efektīvus risinājumus. Šo komandu izpratne un izmantošana nodrošina, ka skripti bez kļūdām var apstrādāt failu nosaukumus ar vairākiem punktiem un citām sarežģītībām.