merkin korvaaminen tuhanessa tiedostossa

Eli sisällön osa on "moveLimit":X, joka pitäis muuttaa jokaiseen "moveLimit":500,
jossa X on "satunnainen" kokonaisluku. Miten helpointa? niin koska tiedostoja on lähes 2000. olen kokeillut normaalia korvausta tekstieditorissa "moveLimit":*,
mutta se luulee että se * kuuluu siihen etsittävään kohteeseen, eikä siten tajua sen tarkoittavan mitätahansa merkkiä
12<50
Äänestä

Muut lukivat myös

Vastaukset 12

Vanhimmat

Tutustu ohjelmaan nimeltä sed.

Äänestä

Etsi netistä tiedostojen nimien muuntamiseen soveltuva ohjelma, joissa nimeämissäännön voi ilmaista ns. regular expression-muodossa. Muistaakseni wintoosassa toimiva ohjelma nimeltään 'Advanced Renamer' (ARen.Exe) sopii tähän.

Äänestä
  • Mitä se hyödyttää kun sen tekstitiedoston sisältö täytyy muuttaa, ei sitä tiedoston nimee.

    Äänestä

  • fdvghjklö kirjoitti:

    Mitä se hyödyttää kun sen tekstitiedoston sisältö täytyy muuttaa, ei sitä tiedoston nimee.

    Tutustu greppiin, niin homma alkaa sujua. Löydät sellaisen (windowsiin) esimerkiksi osoitteesta:
    http://stefanstools.sourceforge.net/grepWin.html

    Äänestä

  • Tämän pitäisi olla tehtävään sopiva hakuargumentti:

    \:[ -]?[0-9]

    eli merkkijono, jossa ensimmäinen merkki on kaksoispiste, seuraava merkki joko plus tai miinus tain numero, ja sitä seuraavat merkit numeroita.
    Tällaisella hakuargumentilla korvaavaksi merkkijonoksi sopisi :500

    Äänestä

  • Bittinarkkari kirjoitti:

    Tämän pitäisi olla tehtävään sopiva hakuargumentti:

    \:[ -]?[0-9]

    eli merkkijono, jossa ensimmäinen merkki on kaksoispiste, seuraava merkki joko plus tai miinus tain numero, ja sitä seuraavat merkit numeroita.
    Tällaisella hakuargumentilla korvaavaksi merkkijonoksi sopisi :500

    Eikös tuo grep lyödy myös cygwin:istä. Saisi samalla muuta hyödyllistä omalle koneelle (gcc).
    http://www.cygwin.com/

    Äänestä

  • Grep on väärä työkalu. Kokeile vaikka
    sed -ir 's/moveLimit\"\:[0-9] /moveLimit\"\:500/g' *

    Äänestä

  • rfiiYHCt kirjoitti:

    Grep on väärä työkalu. Kokeile vaikka
    sed -ir 's/moveLimit\"\:[0-9] /moveLimit\"\:500/g' *

    grep ei suoranaisesti ole mikään väärä työkalu, vaan sed:iäkin vanhempi, regex:ejä ymmärtävä apuohjelma. Niinpä se, joka on kerran oppinut greppailun, oppii nopeasti myös muiden regex:ejä käyttävien työkalujen käytön. Mutta jos joku todella haluaa perehtyä regex:ien käyttöön, niin löytyy esimerkiksi ted ja Ruby.

    Äänestä

  • rfiiYHCt kirjoitti:

    Grep on väärä työkalu. Kokeile vaikka
    sed -ir 's/moveLimit\"\:[0-9] /moveLimit\"\:500/g' *

    Hakuargumentina tuo ehdottamasi moveLimit": on turhan pitkä. Mutta et ehkä ole kuullut KISS-periaatteesta?

    Niin, tuo KISS on muuten akronyymi lauseesta "Keep it simple, Stupid!"

    Äänestä

  • Bittinarkkari kirjoitti:

    Hakuargumentina tuo ehdottamasi moveLimit": on turhan pitkä. Mutta et ehkä ole kuullut KISS-periaatteesta?

    Niin, tuo KISS on muuten akronyymi lauseesta "Keep it simple, Stupid!"

    Enhän minä voi tietää mitä näissä tiedostoissa on. Vaikkapa "oveLimit":123. Tiedostonsa tunteva voi sitten optimoida vaikka miten.

    Äänestä

  • rfiiYHCt kirjoitti:

    Enhän minä voi tietää mitä näissä tiedostoissa on. Vaikkapa "oveLimit":123. Tiedostonsa tunteva voi sitten optimoida vaikka miten.

    Niin. Mutta sinäkin varmaan tiedät, että "satunnainen" kokonaisluku voi olla myös negatiivinen eli pienempi kuin nolla. Sen hakuargumenttiin pitäisi sallia etumerkki "-". Ja samalla vaivalla hakuargumentissa voisi sallia myös etumerkin " ".

    Äänestä

Onko esimerkki tiedostoa?

Äänestä

Kommentoi aloitusta


fdvghjklö kirjoitti:

Eli sisällön osa on "moveLimit":X, joka pitäis muuttaa jokaiseen "moveLimit":500,
jossa X on "satunnainen" kokonaisluku. Miten helpointa? niin koska tiedostoja on lähes 2000. olen kokeillut normaalia korvausta tekstieditorissa "moveLimit":*,
mutta se luulee että se * kuuluu siihen etsittävään kohteeseen, eikä siten tajua sen tarkoittavan mitätahansa merkkiä

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu