"Shell Geek": pakeiskite kelis failus vienu metu

"Shell Geek": pakeiskite kelis failus vienu metu
"Shell Geek": pakeiskite kelis failus vienu metu

Video: "Shell Geek": pakeiskite kelis failus vienu metu

Video:
Video: How To Send Large Files Over the Internet in 2022? (Super Easy) - YouTube 2024, Gegužė
Anonim

Tarkime, kad turite katalogą su šimtais failų su netinkamais failų pavadinimais ir norite pakeisti kiekvieną failo pavadinimą, kuriame yra bandymas su prod. (tai yra išgalvotas pavyzdys). Mes galime lengvai padaryti tai su "for" komandą bash, kartu su šiek tiek bash gerumo. Šiandien mes sužinome, kaip pakeisti tekstą kintamojoje raide.

"Komandos" komanda veikia taip:

for var in ;do $var;done

Galite pakeisti su bet kokiu failo atitikties šablone, pvz., * arba *.txt, ir galite pakeisti su bet kuria linux komanda. Komanda bus vykdoma nuosekliai kiekviename iš failų, atitinkančių failo atitikties modelį.

Čia pagrindinis kintamasis tvarkymas daro jį dar įdomiau. Vietoj tiesiog ką nors panašaus į "mv $ var", mes galime pakeisti tekstą failo pavadinime naudodami šį sintaksę:

${var/originaltext/replacetext}

Taigi dabar, jei paleisime šią komandą mūsų kataloge:

for f in *;do mv $f ${f/test/prod};done

Kiekvienam failui, suderintu su *, bash vykdys panašią į šią komandą komandą:

mv test.config prod.config

Nustatiau, kad žiniatinklio apykaita yra neįkainojama, kai administruoja serverius arba tiesiog tvarko rinkmenų rinkmenas, ir sutaupė man valandų, kada kitaip būtų atliktas rankinis darbas.

Ir taip, suprantu, yra keletas įrankių, kurie gali atlikti keletą failų pervardijimą.

Rekomenduojamas: