Jos minulla on vaikka tekstitiedosto: testi.txt jonka sisältö on:
Tämä on rivi yksi
Tämä on rivi kaksi #
Tämä on rivi kolme 3
Tämä on rivi neljä
Ja nyt tiedostosta pitäisi poistaa kaikki rivit jotka menevät tästä säännöstä läpi:
^[a-zA-ZäÄöÖåÅ ] $
Eli jäljelle jäisivät vain rivit:
Tämä on rivi kaksi #
Tämä on rivi kolme 3
Onnistuuko tämä joten helposti ja nopeasti?
Tämä on rivi yksi
Tämä on rivi kaksi #
Tämä on rivi kolme 3
Tämä on rivi neljä
Ja nyt tiedostosta pitäisi poistaa kaikki rivit jotka menevät tästä säännöstä läpi:
^[a-zA-ZäÄöÖåÅ ] $
Eli jäljelle jäisivät vain rivit:
Tämä on rivi kaksi #
Tämä on rivi kolme 3
Onnistuuko tämä joten helposti ja nopeasti?
Vastaukset 3
Vanhimmat
Tällä:
sed -i '/^[a-zA-ZäÄöÖåÅ ]\ $/d' testi.txt
Jos haluaa varmuuskopion (testi.txt.bak), niin tällä:
sed -i.bak '/^[a-zA-ZäÄöÖåÅ ]\ $/d' testi.txt
Kiitos!
Osaako joku myös neuvoa miten saisin tehtyä sellaisen säännön, että "-" merkki saa olla vain sanan keskellä?
Ei merkkijonon alussa eikä lopussa. Eikä sen lähellä saisi olla välilyöntejä.
Esim tämä on sallittu merkkijono:
Tämä-on-testi
Mutta nämä eivät ole:
Testi-
-Testi
Tämä - testi
Tämä- testi
Tmämä -testi
-
Tämmönen:
sed -e '/[[:alpha:]]-[[:alpha:]]/!d'