Ero sivun ”Ed” versioiden välillä
(välitallennus) |
(lisää) |
||
Rivi 6: | Rivi 6: | ||
Ed on kuuluisa taloudellisuudestaan: se ei näytä mitään ellei sitä käsketä tekemään jotain. Virheilmoituksetkin ovat vain kysymysmerkkejä (tosin ihan niin huono Ed ei kuitenkaan ole, virheilmoitukset saa päälle komennolla H). Tämä oli hyvä ominaisuus Edin ensimmäisten versioiden aikoihin jolloin ohjelman tuloste tuli kirjoittimelle ja levytila ja muistin määrä olivat rajalliset. Tänä päivänä tämä ominaisuus ei enää ole tärkeä. | Ed on kuuluisa taloudellisuudestaan: se ei näytä mitään ellei sitä käsketä tekemään jotain. Virheilmoituksetkin ovat vain kysymysmerkkejä (tosin ihan niin huono Ed ei kuitenkaan ole, virheilmoitukset saa päälle komennolla H). Tämä oli hyvä ominaisuus Edin ensimmäisten versioiden aikoihin jolloin ohjelman tuloste tuli kirjoittimelle ja levytila ja muistin määrä olivat rajalliset. Tänä päivänä tämä ominaisuus ei enää ole tärkeä. | ||
== | == Yksinkertainen muokkaus == | ||
Ed on rivieditori, mikä tarkoittaa sitä, että kaikki työskentely kohdistuu aina yhteen tai useampaan riviin tai rivin osaan. Sillä, mitä ruudulla näkyy, ei ole väliä. | Ed on rivieditori, mikä tarkoittaa sitä, että kaikki työskentely kohdistuu aina yhteen tai useampaan riviin tai rivin osaan. Sillä, mitä ruudulla näkyy, ei ole väliä. | ||
Rivi 103: | Rivi 103: | ||
.-2 | .-2 | ||
rivi 2 | rivi 2 | ||
=== Rivien poistaminen === | |||
Rivien poistamiseen käytetään d (''delete'') -komentoa jolle annetaan poistettava alue samalla tavalla kuin tulostuskomennolle. Esimerkiksi rivit 2-3 poistettaisiin komennolla | |||
2,3d | |||
jolloin tulos olisi edellistä esimerkkitiedostoa muokattaessa | |||
1,$ p | |||
rivi 1 | |||
rivi 4 | |||
Valittuna oleva rivi (joka näkyy siis komennolla .=) poistetaan pelkästään komennolla | |||
d | |||
ja kaksi viimeistä riviä poistuisi komennolla | |||
-1,$ d | |||
=== Muokkausten kumoaminen === | |||
Viimeisin muokkaus kumotaan komennolla | |||
u | |||
=== Tekstin siirtäminen === | |||
Rivejä voidaan siirtää komennolla m (''move''), jonka syntaksi on | |||
alku,loppu m kohde | |||
Tässä ''kohde'' on se rivi, jonka perään rivit siirretään. Esimerkiksi jos muokkaamme taas edellä käytettyä nelirivistä tiedostoa siten, että kaksi ensimmäistä riviä siirretään kolmannen rivin perään: | |||
1,2m3 | |||
ja tulos on | |||
1,$p | |||
Rivi 3 | |||
Rivi 1 | |||
Rivi 2 | |||
Rivi 4 | |||
Tiedoston alkuun siirtäminen onnistuu siirtämällä rivit rivin 0 perään. Tiedoston loppuun siirrettäessä voidaan kohteena käyttää riviä $. | |||
=== Tekstin kopiointi === | |||
Tekstin kopiointi tapahtuu samaan tapaan kuin poistaminen, mutta nyt komento on t (''transfer''). Syntaksi on sama kuin edellä poistamisen yhteydessä: | |||
alku,loppu t kohde | |||
Esimerkki jos taas muokkaamme yksinkertaista nelirivistä tiedostoamme: kopioidaan kaksi ensimmäistä riviä tiedoston loppuun: | |||
1,2t$ | |||
1,$p | |||
Rivi 1 | |||
Rivi 2 | |||
Rivi 3 | |||
Rivi 4 | |||
Rivi 1 | |||
Rivi 2 | |||
=== Alueen korvata === | |||
Komennolla c (''change'') voidaan korvata tiettyjen rivien tekstit toisella tekstillä. Esimerkiksi rivien 2-3 paikalle lisätään käyttäjän kirjoittama teksti (jossa voi olla haluttu määrä rivejä) komennolla | |||
2,3c | |||
Tämän jälkeen tekstiä kirjoitetaan kuten komennon a jälkeen ja kirjoittaminen lopetetaan kirjoittamalla tyhjälle riville piste ja painamalla enteriä. Esimerkiksi muokkaamme taas samaa tiedostoa: | |||
1c | |||
1.1 | |||
1.2 | |||
. | |||
1,$p | |||
1.1 | |||
1.2 | |||
Rivi 2 | |||
Rivi 3 | |||
Rivi 4 | |||
=== Rivien yhdistäminen === | |||
Kaksi riviä voidaan yhdistää komennolla j (''join'') jonka syntaksi on | |||
rivi,rivij | |||
Esimerkki: | |||
1,2p | |||
Rivi 1 | |||
Rivi 2 | |||
1,2j | |||
1p | |||
Rivi 1 Rivi 2 | |||
== Säännölliset lausekkeet == | |||
== Etsiminen ja korvaaminen == | |||
== Erikoismerkit == | |||
== Järjestelmän komennot == | |||
== Lista komennoista == | |||
== Katso myös == | == Katso myös == |
Versio 6. syyskuuta 2008 kello 13.42
Ed on tekstitilassa toimiva rivieditori jolla tiedostoa käsitellään rivi kerrallaan. Siitä on nykyään hyötyä lähinnä skripteissä ja tilanteessa, jossa päätteet asetukset ovat niin sekaisin etteivät kehittyneemmät esim. ncursesia käyttävät kokoruudun tekstieditorit toimi. Ed löytyy käytännössä jokaisesta Unix-järjestelmästä. Ed löytyy myös mm. Vim-editorin pohjalta ja se on vaikuttanut esimerkiksi grepin ja awk:n kehitykseen.
Perustietoa
Ed oli Unix-järjestelmän perustekstieditori. Sen alkuperäisellä man-sivulla lukikin "Ed is the standard text editor", "Ed on oletustekstieditori". Ken Thompson kirjoitti ensimmäisen version siitä assembly-kielellä vuonna 1969. Jo tällöin mukana oli yksi Edin tärkeimmistä ominaisuuksista: tuki säännöllisille lausekkeille.
Ed on kuuluisa taloudellisuudestaan: se ei näytä mitään ellei sitä käsketä tekemään jotain. Virheilmoituksetkin ovat vain kysymysmerkkejä (tosin ihan niin huono Ed ei kuitenkaan ole, virheilmoitukset saa päälle komennolla H). Tämä oli hyvä ominaisuus Edin ensimmäisten versioiden aikoihin jolloin ohjelman tuloste tuli kirjoittimelle ja levytila ja muistin määrä olivat rajalliset. Tänä päivänä tämä ominaisuus ei enää ole tärkeä.
Yksinkertainen muokkaus
Ed on rivieditori, mikä tarkoittaa sitä, että kaikki työskentely kohdistuu aina yhteen tai useampaan riviin tai rivin osaan. Sillä, mitä ruudulla näkyy, ei ole väliä.
Ediä käytetään kahdessa eri tilassa, on komentotila ja kirjoitustila. Käynnistyksen jälkeen Ed on komentotilassa jolloin se lukee käyttäjän kirjoittamia komentoja ja suorittaa niitä. Kaikki komennot ovat yhden merkin mittaisia mutta jotkut vaativat myös erillisiä parametrejä. Komento voi esimerkiksi tarkoittaa "tallenna ja lopeta".
Tietyllä komennolla Ed siirtyy kirjoitustilaan. Näitä ovat a (lisää tekstiä valitun kohdan perään), i (lisää tekstiä ennen valittua kohtaa) ja c (muuta valittuja rivejä).
Tiedostoon kirjoittaminen ja tiedoston tallentaminen ja avaaminen
Luodaan aluksi yksinkertainen tiedostoa Ediä käyttäen. Käynnistetään Ed ensin komennolla
$ ed
Tämän jälkeen kirjoitetaan tiedostoon tekstiä. Aluksi siirrytään kirjoitustilaan ja kirjoitetaan nykyisen kohdan (tiedoston alun) perään antamalla komento a ja painamalla tämän jälkeen enteriä. Tämän jälkeen voidaan kirjoittaa haluttua sisältöä tiedostoon. Rivinvaihto tapahtuu enterillä. Kirjoittaminen lopetetaan kirjoittamalla enterin painamisen jälkeen aukeavalle riville vain piste ja painamalla enteriä:
a Ed on monipuolinen tekstieditori. Ehkä tätä ei kuitenkaan kannata käyttää wikin muokkaamiseen? .
Pisteen antamisen jälkeen Ed siirtyy takaisin komentotilaan mutta ei ilmoita siitä mitenkään. Seuraavaksi tallennetaan luotu tiedosto komennolla w. Komennolle annetaan parametrina tallennettavan tiedoston nimi:
w tiedosto
Komennon perään Ed tulostaa tiedostoon kirjoitettujen merkkien lukumäärän:
w tiedosto 101
Lopuksi Ed voidaan lopettaa komennolla q. Jos tiedostoa ei oltaisi tallennettu, Ed antaisi tässä tapauksessa virheilmoituksen (eli tulostaisi kysymysmerkin). Virheilmoituksen syyn näkee komennolla h. Tässä tapauksessa se olisi Warning: file modified. Jos tämän jälkeen annetaan uudelleen komento q, Ed sulkeutuu eikä muutoksia tallenneta. Komennolla Q Ed sulkeutuu joka tapauksessa riippumatta siitä, onko muutoksia tallentamatta.
Avataan seuraavaksi äsken luotu tiedosto komennolla
$ ed tiedosto 101
Toinen vaihtoehto olisi
$ ed e tiedosto 101
Komennon jälkeen Ed käynnistyy ja tulostaa tiedostossa olevien merkkien määrän. Nyt tiedoston perään voitaisiin lisätä tekstiä komennolla a tai i (tiedoston lataamisen jälkeen "kursori" on tiedoston lopussa, joten on ihan sama, lisätäänkö teksti ennen tiedoston loppua vai sen jälkeen).
Tässä tapauksessa kun tiedosto on avattu, se voidaan tallentaa normaalisti komennolla w. Ed tulostaa taas tallennettujen merkkien määrän.
Kun Ed on käynnissä, komennolla f nähdään tiedoston oletusnimi (jolle tiedosto tallennetaan komennolla w, aluksi avatun tiedoston nimi):
f tiedosto
On syytä huomata, että tämä tiedosto ei muutu kun tiedosto tallennetaan eri nimellä. Esimerkiksi jos tiedostosta tallennetaan varmuuskopio:
w varmuuskopio f tiedosto
Komennolle f voidaan myös antaa parametri, joka asettaa oletuksena käytettävän tiedoston nimen:
f uusi uusi
Käydään vielä läpi yksi tiedostojen lukemiseen käytettävä komento: r (read). Komento lukee sille parametrina annetun tiedoston sisällön ja lisää sen muokattavana olevaan tiedostoon valitun kohdan perään:
$ ed tiedosto 101 r tiedosto 101 w 202 q
Nyt kun katsotaan tiedoston sisältöä huomataan, että siellä on sama sisältö kahteen kertaan peräkkäin.
Tulostus ja liikkuminen
Tekstieditorin käyttäminen on aika hankalaa jos sillä ei näe tiedoston sisältöä. Lisäksi tässä artikkelissa on jo usempaan kertaan puhuttu "valitusta kohdasta" tai "kursorin sijainnista". Seuraavaksi käydään läpi nämä asiat.
Tiedoston sisällön tulostaminen tapahtuu komennolla p (print). Sitä ennen annetaan se alue tiedostosta, jota komento koskee muodossa [aloitusrivi],[lopetusrivi]. Esimerkiksi tiedoston kaksi ensimmäistä riviä tulostetaan komennolla
1,2p
ja kolmas rivi komennolla
3p
Kun tulostetaan vain yksi rivi, voidaan p jättää myös pois. Seuraavat komennot ovat identtiset:
2p 2
Tiedoston viimeiseen riviin viitataan dollarimerkillä $. Siispä koko tiedoston sisältö tulostettaisiin komennolla
1,$p
Myös negatiivisa rivinumeroita voidaan käyttää. Tällöin esimerkiksi -1 viittaa toiseksiviimeiseen riviin, -2 kolmanneksiviimeiseen jne. Esimerkiksi kaksi viimeistä riviä tulostetaan komennolla
-1,$p
Ed pitää muistissa, mitä riviä on viimeksi käsitelty (esimerkiksi kirjoitettu tai tulostettu). Esimerkiksi rivi 2 valittaisiin vaikkapa tulostamalla se:
2p
Tällä hetkellä valittuna oleva rivi näkyy komennolla
.=
Piste on oikeastaan eräänlainen muuttuja, jonka arvo on muokattavan rivin numero. Vastaavasti esimerkiksi tiedoston rivien määrä nähdään tulostamalla $:n arvo:
$=
Tiedostossa voidaan liikkua eteen ja taaksepäin enterillä ja + ja - -merkeillä. Esimerkiksi jos meillä on 4-rivinen tiedosto jonka sisältö on:
rivi 1 rivi 2 rivi 3 rivi 4
Voidaan siinä liikkua seuraavasti:
1 rivi 1 [ENTER] rivi 2 [ENTER] rivi 3 - rivi 2
Lisäksi voidaan liikkua useampi rivi kerrallaan muuttamalla pisteen arvoa esimerkiksi .+3 tai .-2:
1 rivi 1 .+3 rivi 4 .-2 rivi 2
Rivien poistaminen
Rivien poistamiseen käytetään d (delete) -komentoa jolle annetaan poistettava alue samalla tavalla kuin tulostuskomennolle. Esimerkiksi rivit 2-3 poistettaisiin komennolla
2,3d
jolloin tulos olisi edellistä esimerkkitiedostoa muokattaessa
1,$ p rivi 1 rivi 4
Valittuna oleva rivi (joka näkyy siis komennolla .=) poistetaan pelkästään komennolla
d
ja kaksi viimeistä riviä poistuisi komennolla
-1,$ d
Muokkausten kumoaminen
Viimeisin muokkaus kumotaan komennolla
u
Tekstin siirtäminen
Rivejä voidaan siirtää komennolla m (move), jonka syntaksi on
alku,loppu m kohde
Tässä kohde on se rivi, jonka perään rivit siirretään. Esimerkiksi jos muokkaamme taas edellä käytettyä nelirivistä tiedostoa siten, että kaksi ensimmäistä riviä siirretään kolmannen rivin perään:
1,2m3
ja tulos on
1,$p Rivi 3 Rivi 1 Rivi 2 Rivi 4
Tiedoston alkuun siirtäminen onnistuu siirtämällä rivit rivin 0 perään. Tiedoston loppuun siirrettäessä voidaan kohteena käyttää riviä $.
Tekstin kopiointi
Tekstin kopiointi tapahtuu samaan tapaan kuin poistaminen, mutta nyt komento on t (transfer). Syntaksi on sama kuin edellä poistamisen yhteydessä:
alku,loppu t kohde
Esimerkki jos taas muokkaamme yksinkertaista nelirivistä tiedostoamme: kopioidaan kaksi ensimmäistä riviä tiedoston loppuun:
1,2t$ 1,$p Rivi 1 Rivi 2 Rivi 3 Rivi 4 Rivi 1 Rivi 2
Alueen korvata
Komennolla c (change) voidaan korvata tiettyjen rivien tekstit toisella tekstillä. Esimerkiksi rivien 2-3 paikalle lisätään käyttäjän kirjoittama teksti (jossa voi olla haluttu määrä rivejä) komennolla
2,3c
Tämän jälkeen tekstiä kirjoitetaan kuten komennon a jälkeen ja kirjoittaminen lopetetaan kirjoittamalla tyhjälle riville piste ja painamalla enteriä. Esimerkiksi muokkaamme taas samaa tiedostoa:
1c 1.1 1.2 . 1,$p 1.1 1.2 Rivi 2 Rivi 3 Rivi 4
Rivien yhdistäminen
Kaksi riviä voidaan yhdistää komennolla j (join) jonka syntaksi on
rivi,rivij
Esimerkki:
1,2p Rivi 1 Rivi 2
1,2j 1p
Rivi 1 Rivi 2
Säännölliset lausekkeet
Etsiminen ja korvaaminen
Erikoismerkit
Järjestelmän komennot
Lista komennoista
Katso myös
Aiheesta muualla
- Ed-artikkeli unix.se-wikissä (ruotsiksi). Tämä artikkeli on osittain käännetty kyseisestä unix.se-wikin CC-BY-lisensoidusta artikkelista.