skripti tekstin korvaamiseen

Liittynyt
03.07.2018
Viestejä
347
Mikä olisi hyvä linux-komento macbookkiin jolla voisi tehdä pikakuvakkeen mihin voisi raahata sql-dumppitiedoston ja sitten tämä skripti suorittaisi useita search&replace komentoja tähän tiedostoon ja lopuksi tallentaisi sen.

pitäisi olla silleen helppo että ei muuta enkoodausta utf8:sta miksikään ja tukisi myös erikoismerkkejä kuten / \ (tab) ilman että tarvitsisi pähkäillä niiden escapetuksen kanssa.
Joku grep skriptihän toimii noiden kanssa juuri huonosti
 
Liittynyt
17.10.2016
Viestejä
5 331
Vähän riippuu minkälaisia operaatioita tiedostolle pitää tehdä. Onhan noita sed, grep (ja egrep ja fgrep), awk tai vaikka ihan pythonilla tekee jos on jotain monimutkaisempaa korvattavaa. Eikä grep mitenkään huonosti tuossa toimi ellei mitään escape-merkkejä tarvitse käpistellä. Kaikissa on omat puolensa, paha yhtäkkiä sanoa mutta sed on aika kätevä kyllä yksinkertaisiin search/replace -hommiin että siitä melkein aloittaisin tuon miettimisen.

Eikä se enkoodauksen muuttuminenkaan välttämättä ongelma ole, ainahan filettä voi muuttaa enkoodauksesta toiseen vaikka iconv:lla. Toki aina parempi jos ei tarvitse tuohon ryhtyä.
 

dmn

Liittynyt
07.11.2016
Viestejä
1 636
Mysql:n mukana joskus tuli replace-komentorivityökalu (≈ linux-komento), jolla tuo onnistuu helposti. Toki esim sedilläkin (≠ setä) onnistuu. Merkistö ja erikoismerkit ei tuossa merkkaa juurikaan, enempi murhetta tulee siitä että käytännössä tuon työkalun pitäisi ymmärtää, mikä osa on kyselyä ja mitkä sen arvoja. Muuten esim. pelkän "select" tekstin korvaaminen tuottaa epähaluttuja tuloksia, sitä en osaa sanoa osaisko tuo replace komento ymmärtää sen päälle.

 
Liittynyt
17.10.2016
Viestejä
5 331
Mysql:n mukana joskus tuli replace-komentorivityökalu (≈ linux-komento), jolla tuo onnistuu helposti. Toki esim sedilläkin (≠ setä) onnistuu. Merkistö ja erikoismerkit ei tuossa merkkaa juurikaan, enempi murhetta tulee siitä että käytännössä tuon työkalun pitäisi ymmärtää, mikä osa on kyselyä ja mitkä sen arvoja. Muuten esim. pelkän "select" tekstin korvaaminen tuottaa epähaluttuja tuloksia, sitä en osaa sanoa osaisko tuo replace komento ymmärtää sen päälle.

Aika samat ongelmat on noilla sed/grep/... -komennoillakin, mutta paha sanoa tuon enempää kun ei tiedä minkämoisia muokkauksia on tarkoitus tehdä. Tosin, casesensitive-replacellakin pääsee monesti pitkälle kun ainakin postgresin dumpissa on tietokantakomennot all-caps ja datassa ei niin todennäköisesti ole vastaavia termejä.
 
Liittynyt
07.01.2021
Viestejä
678
Awk on tuon tapaaisen ainakin toimiva jos jaksaa opetella. Joissakin skriptikielissä voi itse määritellä, mikä on regexpin erikoismerkki. Jos siis tarvitsee mätsätä /-merkkiin niin komennossa voi käyttää vaikka risuaitaa sen sijaan.
 
Liittynyt
21.10.2016
Viestejä
9 054
Vähän jäi arvoitukseksi mikä on käyttökohde, mut oletko automatoriin tutustunut? MacOSin oma ohjelma, jolla saa kaikennäköistä automaatiota tehtyä. Vrt. Tasker Androidilla.
 
Viimeksi muokattu:
Toggle Sidebar

Statistiikka

Viestiketjut
237 321
Viestejä
4 157 211
Jäsenet
70 408
Uusin jäsen
maurichia

Hinta.fi

Ylös Bottom