Millä komennolla voi poistaa tekstitiedostosta kaikki tyhjät ja #-merkillä alkavat rivit?Joku putkittu cat-komento etsitään siis.
cat test.txt|grep -ve ^#|grep -ve ^$Eli etsitään #-alkuiset ja rivit joiden alussa rivinvaihto ja jätetään ne pois.0ÄänestäKommentoi
Klassinen "useless use of cat" -tapaus ..Tuo lyhenee muotoon:grep -ve ^# test.txt |grep -ve ^$Toisaalta -e on myös turha tässä tapauksessa, joten tuonkin voi edelleen lyhentää muotoon:grep -v ^# test.txt |grep -v ^$Tästä vielä jatkamalla käytetäänkin egrepiä (joka on teknisesti sama asia kuin sanoisi grep -E):egrep -v '(^#|^$)' test.txtMerkin ^ voi vielä siirtää (molempien regexpien yhteinen tekijä alussa), jolloin saadaan sopivan lyhyt lauseke:egrep -v '^(#|$)' test.txt0ÄänestäKommentoi
mik26 kirjoitti:Klassinen "useless use of cat" -tapaus ..Tuo lyhenee muotoon:grep -ve ^# test.txt |grep -ve ^$Toisaalta -e on myös turha tässä tapauksessa, joten tuonkin voi edelleen lyhentää muotoon:grep -v ^# test.txt |grep -v ^$Tästä vielä jatkamalla käytetäänkin egrepiä (joka on teknisesti sama asia kuin sanoisi grep -E):egrep -v '(^#|^$)' test.txtMerkin ^ voi vielä siirtää (molempien regexpien yhteinen tekijä alussa), jolloin saadaan sopivan lyhyt lauseke:egrep -v '^(#|$)' test.txtTosi on. Ei vaan tahdo muistua mieleen kaikki konstit vaan tulee käytettyä ekaa mikä toimii.Hyvä tarkennus kuitenkin. :)0ÄänestäKommentoi
tälleen kirjoitti:Tosi on. Ei vaan tahdo muistua mieleen kaikki konstit vaan tulee käytettyä ekaa mikä toimii.Hyvä tarkennus kuitenkin. :)egrep -v '(^#|^$)' test.txt jos ^$ on tyhjä rivi, niin mikä on rivi, joka alkaa $-merkillä ?0ÄänestäKommentoi
kysymys kirjoitti:egrep -v '(^#|^$)' test.txt jos ^$ on tyhjä rivi, niin mikä on rivi, joka alkaa $-merkillä ?^\$0ÄänestäKommentoi
Vastaukset 6
Vanhimmat
cat test.txt|grep -ve ^#|grep -ve ^$
Eli etsitään #-alkuiset ja rivit joiden alussa rivinvaihto ja jätetään ne pois.
Kiitos vielä kerran.
Klassinen "useless use of cat" -tapaus ..
Tuo lyhenee muotoon:
grep -ve ^# test.txt |grep -ve ^$
Toisaalta -e on myös turha tässä tapauksessa, joten tuonkin voi edelleen lyhentää muotoon:
grep -v ^# test.txt |grep -v ^$
Tästä vielä jatkamalla käytetäänkin egrepiä (joka on teknisesti sama asia kuin sanoisi grep -E):
egrep -v '(^#|^$)' test.txt
Merkin ^ voi vielä siirtää (molempien regexpien yhteinen tekijä alussa), jolloin saadaan sopivan lyhyt lauseke:
egrep -v '^(#|$)' test.txt
Tosi on. Ei vaan tahdo muistua mieleen kaikki konstit vaan tulee käytettyä ekaa mikä toimii.
Hyvä tarkennus kuitenkin. :)
egrep -v '(^#|^$)' test.txt
jos ^$ on tyhjä rivi, niin mikä on rivi, joka alkaa $-merkillä ?
^\$