-
IT café
Új hozzászólás Aktív témák
-
nagyúr
válasz hellomi #17532 üzenetére
regex alatt a parancssort erted?
❯ ls
valamifdhsdfhd.pdf valamifhshfhsf.pdf valamihfhfhdsfy.jpg.pdf valamihfshjsdfhns.pdf.jpg valamihfssh.pdf valamihrfjhdjh.pdf valamivalami.pdf
❯ i=1;for f in `ls | grep -e "^[^\.]*\.pdf$" | sed "s:\.pdf$::"`; do echo "mv $f.pdf $f-$i.pdf"; let i=i+1; done;
mv valamifdhsdfhd.pdf valamifdhsdfhd-1.pdf
mv valamifhshfhsf.pdf valamifhshfhsf-2.pdf
mv valamihfssh.pdf valamihfssh-3.pdf
mv valamihrfjhdjh.pdf valamihrfjhdjh-4.pdf
mv valamivalami.pdf valamivalami-5.pdf
❯ i=1;for f in `ls | grep -e "^[^\.]*\.pdf$" | sed "s:\.pdf$::"`; do mv $f.pdf $f-$i.pdf; let i=i+1; done;
❯ ls
valamifdhsdfhd-1.pdf valamifhshfhsf-2.pdf valamihfhfhdsfy.jpg.pdf valamihfshjsdfhns.pdf.jpg valamihfssh-3.pdf valamihrfjhdjh-4.pdf valamivalami-5.pdf
while (!sleep) sheep++;
-
válasz hellomi #17532 üzenetére
jó lenne tudni, hogy milyen oprendszer, mert ha unix meg bash, arra van szaktopic.
basename. valahogy így:
szamlalo=1
for i in vala*.pdf; do
mv "$i" $(basename "$i" .pdf)-${szamlalo}.pdf
let szamlalo=szamlalo+1
donefordított aposztróf deprecated.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
coco2
őstag
válasz hellomi #17535 üzenetére
Ahol elkezd bonyolódni a string feldolgozás, jobb C-ben írni a programot. Egy gcc fordító szokott lenni linuxok alatt. Keresztül csövezve a standard bemenet a beérkező adat soronként, és a standard output megy kifele tovább a pipe-on. C programban használhatsz bármilyen visszamenőleges emlékezést, szétszedheted a stringet akár karakterenként, és karbantartható + kényelmes marad.
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
-
cucka
addikt
válasz hellomi #17535 üzenetére
Annak nincs értelme, hogy "regex parancs".
Olyat tudsz, hogy egy bemeneti szövegből regex pattern alapján gyártasz egy kimeneti szöveget.Például itt a bemenet az, hogy "valami.pdf", a kimenet pedig "valami-5.pdf"
echo "valami.pdf" | sed -E 's/^(.*)\.pdf$/\1-5.pdf/'
De olyat nem tudsz, hogy van n darab bemeneted, és akkor a regex pattern tudja magától, hogy épp hanyadik mintát nézi. Arra írhatsz egy for ciklust, pl.#17534hozzászólásban van rá példa, ott egy $i változóban van az aktuális sorszám, azt bele tudod rakni a sed regex pattern-jébe, és akkor azt fogja behelyettesíteni az 5-ös szám helyett.
-
coco2
őstag
válasz hellomi #17540 üzenetére
>Teljesen mindegy milyen oprendszer, siman terminalos univerzalis megoldast keresek
Nem létezik olyan. Példának okáért Windows alatt nincsenek cat, sed, paste, máshogy használsz shell változókat stb. Ha scriptelni akarsz, még rosszabbul jársz hordozhatóság szempontjából, mintha C-ben írnád meg. De ha téged szórakoztat, hogy tévedésben élsz, nekem aztán tök8
[ Szerkesztve ]
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- PlayStation 5
- Milyen TV-t vegyek?
- Kerékpárosok, bringások ide!
- sziku69: Fűzzük össze a szavakat :)
- Amlogic S905, S912 processzoros készülékek
- Helldivers 2 (PC, PS5)
- The Witcher - Jön az 5. évad, ezzel együtt pedig elkaszálták a sorozatot
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Gitáros topic
- Milyen notebookot vegyek?
- További aktív témák...