Olisi skripti haussa mutta oma osaaminen ei äkkiseltään riitä. Auromatorillakaan ei tämmöistä ilmeisesti pysty tekemään.
Eli, tarve on 1) löytää tekstitiedostosta tiettyjen peräkkäisten rivien yhdstelmä, ja 2) korvata ne omilla riveillä.
Esimerkkinä syötetiedosto a.txt, jonka sisältö:
"
a
b
c
d
"
Tarve korvata peräkkäin esiintyvät rivit b ja c riveillä e ja f. Tulos pitäisi siis olla:
"
a
e
f
d
"
Mahdoton tehtävä? Tarkennettakoon vielä, että skriptin ei tarvitse löytää kuin yksi osuma tiedostoa kohden.
Skripti haussa: Usean rivin löytäminen + korvaaminen
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
5 viestiä
• Sivu 1/1
-
- Viestit: 109
- Liittynyt: 11.1.2006 klo 14.18
- Paikkakunta: Helsinki
Skripti haussa: Usean rivin löytäminen + korvaaminen
Viesti Kirjoittaja boer »
-
- Viestit: 2566
- Liittynyt: 21.2.2004 klo 12.53
- Paikkakunta: Ylivieska
-
- Viestit: 1014
- Liittynyt: 6.11.2004 klo 19.35
Viesti Kirjoittaja nobu178 »
Kirjoita seuraava Päätteessä (vaihda tiedoston nimi ja polku tarpeen mukaan):
perl -0777e '$str=<>;$str=~s/b\nc/e\nf/s; print $str;' /Users/boer/Desktop/a.txt > Desktop/b.txt
EDIT: Jos on monta tiedostoa, voit silmukoida yllä olevan rivin seuraavaan tyyliin (oletuksena on, että kaikki käsiteltävät tiedostot sijaitsevat Desktopin Alku-kansiossa. Tulokset tulostetaan numerolla 2 varustettuina Loppu-kansioon):
for i in /Users/boer/Desktop/Alku/*.txt;do cat $i | perl -0777e '$str=<>;$str=~s/b\nc/e\nf/sg; print $str;' > /Users/boer/Desktop/Loppu/`basename $i .txt`2.txt; done
perl -0777e '$str=<>;$str=~s/b\nc/e\nf/s; print $str;' /Users/boer/Desktop/a.txt > Desktop/b.txt
EDIT: Jos on monta tiedostoa, voit silmukoida yllä olevan rivin seuraavaan tyyliin (oletuksena on, että kaikki käsiteltävät tiedostot sijaitsevat Desktopin Alku-kansiossa. Tulokset tulostetaan numerolla 2 varustettuina Loppu-kansioon):
for i in /Users/boer/Desktop/Alku/*.txt;do cat $i | perl -0777e '$str=<>;$str=~s/b\nc/e\nf/sg; print $str;' > /Users/boer/Desktop/Loppu/`basename $i .txt`2.txt; done
-
- Viestit: 109
- Liittynyt: 11.1.2006 klo 14.18
- Paikkakunta: Helsinki
-
- Viestit: 937
- Liittynyt: 5.6.2006 klo 13.48
- Paikkakunta: Helsinki
Viesti Kirjoittaja morbusg »
Jotenkin toi perli aina näyttää niin kamalan monimutkaselta mun silmään (joo, johtuu vaan siitä etten osaa), niin tässä simppeli sed-versio:
eli ensimmäinen sdf... on patterni mitä haetaan, N lisää multiline pattern spaceen, s on substitute, sama sdf... hakulitania tällä kertaa sisältäen myös \n, eli newline merkin, sitten seuraava rivi mikä halutaan korvata, kekeke on millä korvataan, ja lopussa g tarkoittaa globaalisti.
Joo, ois varmaan pitänyt kirjottaa jotain järkevämpää että olis vähän selkeempi...
MUOKS: niin ja jos rivinvaihtoja haluaa korvauksiin, niin ne tuleeeli "\" ja enter.
Koodi: Valitse kaikki
# cat jaja.txt
dsaflkjdkj
sdfkdfks
kdfsjkldf
49rofifdkj
klffdkj
jdfsjdfs
# sed '/sdfkdfks/{
N
s/sdfkdfks\nkdfsjkldf/kekeke/g
}' jaja.txt
dsaflkjdkj
kekeke
49rofifdkj
klffdkj
jdfsjdfs
Joo, ois varmaan pitänyt kirjottaa jotain järkevämpää että olis vähän selkeempi...

MUOKS: niin ja jos rivinvaihtoja haluaa korvauksiin, niin ne tulee
Koodi: Valitse kaikki
s/sdfkdfks\nkdfsjkldf/kekeke\
diudiudiud/g
5 viestiä
• Sivu 1/1
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit