Új hozzászólás Aktív témák

  • Frawly
    veterán

    Ezt jó, de az a bajom vele, hogy a szintaxisa számomra totál elbonyolított (hasonlóan mint az awk, vagy sed parancsé). Míg totál érthető a Double Commander és Total Commander megoldása (még a hülyéknek is), addig ez azért eléggé el van bonyolítva.
    Pl ahogy most nézek egy példát:
    image_10.jpg -> image_010.jpg (lényeg hogy minden image_szám file esetén 3 jegyű legyen a számozás).
    megoldás: perl-rename -n 's{^(.*/)?(.*_)(\d+)([.][^.]+)$}{sprintf "%s%s%03d%s", $1, $2, $3, $4}e' * (ezt találtam rá egy fórumban)
    Ugyanez Double Commander alatt be kell állíítani, hogy a számláló 3 karakter legyen, majd ennyi a szintaxis: [N1:6][C].[E]
    Kész. Totál egyszerű, míg a perl-rename egy halandónak totál katyvasz :(

    Vifm-ből hívott csoportos átnevezés vim-ben grep/sed-szintaxissal:
    :%s/[0-9]{2}/0\0/g

    Nem teszteltem, de azt kéne csinálnia, amit írsz, a kétjegyű számokat (de csak azokat) átcseréli háromjegyűre. Ha látod a listán, hogy helyesen cserélt le mindent, a végén ZZ billentyűkkel kilépsz vim-ből, és visszakapod a Vifm-et, az átnevezett fájlokkal.

    A „:” parancsmódba teszi le a vim-et, az „s” a substition rövidítése/parancsa (általános alakja s/keresett/cserestring/ formában szokásos), előtte a % jel azt jelenti, hogy az összes sorban hajtsa végre, ne csak az első sorban, a „g” a végén meg a global rövidítése, ami miatt egy soron belüli többször előfordulásokat is lecserél, ez az esetünkben nem szükséges, mert egy sorban egy egyezés lesz, de én megszokásból mindig gyűröm a végére a g-t. A [0-9] számjegyet jelent, a {2} pontosan két előfordulást egymás után (lehetne [0-9][0-9] formában is írni), a \0 a keresett kifejezést teszi oda az extra 0 után pluszban.

    Nem árt megtanulni regexp-pül, mert nem csak csoportos átnevezéshez jön jól, de scriptekben, meg úgy általában linuxoknál, Unix-származékoknál, programozásnál, nem csak vim-ben, de bármilyen regexp képes editorban, prognyelvben, terminálban grep/sed-hez, még a Total Commander, Double Commander is támogatja alternatívaként a saját regexp formátumán felül. Előnye, hogy a Commader-ek [bla][bla] regexpjénél többet tud, rugalmasabb, igaz bonyolultabb is, és nehezebben olvasható.

    Az awk-t én sem szeretem, túl bonyolult a szintaxisa, de ha oszlopszerű adathalmazból akarsz kinyerni oszlopokat, akkor arra viszont könnyebben használható, mint egy posix/grep/perl regexp.

    (#6842) májkimiki: ez ilyen. Főleg, ha ilyen 2 magos, 2 szálas példányod van (vannak erősebb, 4 magos, 4 szálas modellek is), nuku L3 cache, alacsony órajel, alacsony IPC. Ahogy nézem, még hardveres virtualizációt sem támogat. Ha ez vigasztal, Windows alatt még sokkal rosszabb lenne.

Új hozzászólás Aktív témák