Jos rivi sisältää merkkijonon...

helppppp me

Pitäisi etsiä tiedostosta rivit jotka ovat muotoa:

[[JOTAIN]]
ja
==JOTAIN==

muttei

[[[EI TÄTÄ]]]
eikä
===EIKÄ TÄTÄ===
eikä
=======EIKÄ MYÖSKÄÄN TÄTÄ========
jne..

Eli pitäisi korjata tämä koodi:

while read inputline
do
if [[ $inputline == ==*== ]]
then
echo $inputline >> uusidata.txt
fi
if [[ $inputline == [[*]] ]]
then
echo $inputline >> uusidata.txt
fi
done < data.txt

13

70

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Tom peli

      grep "^\[\[.*\]\]\|^==.*==" data.txt | \
      grep -v "\[\[\[.*\]\]\]\|===.*===" > uusidata.txt

      (Toivottavasti palstan softa ei suodata merkkejä...)

      • Tom peli

        grep "^\[\[.*\]\]$\|^==.*==$" data.txt | \
        grep -v "\[\[\[.*\]\]\]\|===.*===" > uusidata.txt

        Aiemmasta jäi rivin loppumerkki "$" pois. Siis jos on tarkoitus poimia vain rivit, joilla "]]" tai "==" jälkeen ei ole mitään. Samoin poimitaan vain rivit, jotka alkavat "[[" tai "==", mikä olin jo aiemmin ottanut huomioon merkillä "^".


      • helppppp me
        Tom peli kirjoitti:

        grep "^\[\[.*\]\]$\|^==.*==$" data.txt | \
        grep -v "\[\[\[.*\]\]\]\|===.*===" > uusidata.txt

        Aiemmasta jäi rivin loppumerkki "$" pois. Siis jos on tarkoitus poimia vain rivit, joilla "]]" tai "==" jälkeen ei ole mitään. Samoin poimitaan vain rivit, jotka alkavat "[[" tai "==", mikä olin jo aiemmin ottanut huomioon merkillä "^".

        Saako sen toimimaan tolla "if:lla" niin kuin mulla oli?

        Tarkoitus on myöhemmin lisätä muutakin koodia sinne.


      • debdebdeb
        helppppp me kirjoitti:

        Saako sen toimimaan tolla "if:lla" niin kuin mulla oli?

        Tarkoitus on myöhemmin lisätä muutakin koodia sinne.

        saa


      • Tom peli
        helppppp me kirjoitti:

        Saako sen toimimaan tolla "if:lla" niin kuin mulla oli?

        Tarkoitus on myöhemmin lisätä muutakin koodia sinne.

        Ilmeisesti harjoitustyössä käsketään käyttämään silmukkaa ja if-lausetta.


      • helppppp me
        Tom peli kirjoitti:

        Ilmeisesti harjoitustyössä käsketään käyttämään silmukkaa ja if-lausetta.

        Ei, vaan kuten sanoin if silmukkoihin on tarkoitus lisätä muuta koodia. Esim, tarkoitus on poistaa nuo == ja [[ merkit, jne...


      • helppppp me
        Tom peli kirjoitti:

        Ilmeisesti harjoitustyössä käsketään käyttämään silmukkaa ja if-lausetta.

        Heti toinen ongelma:

        Jos rivi sisältää merkkijonon:

        * Jotain ihan vaan

        niin tämä rivi

        echo $inputline >> data.txt

        lisää tiedostoon:

        Desktop Downloads Music Documents Movies Pictures Jotain ihan vaan

        Eli suoriittaa: "echo *" kommennon.

        Miten sen voi estää?


      • /7\|/7\
        helppppp me kirjoitti:

        Heti toinen ongelma:

        Jos rivi sisältää merkkijonon:

        * Jotain ihan vaan

        niin tämä rivi

        echo $inputline >> data.txt

        lisää tiedostoon:

        Desktop Downloads Music Documents Movies Pictures Jotain ihan vaan

        Eli suoriittaa: "echo *" kommennon.

        Miten sen voi estää?

        laita joku esimerkki tiedostosta ja esimerkki siitä mitä siitä pitää ottaa.. eihän tuosta kukaan saa enää tolkkua.


      • helppppp me
        /7\|/7\ kirjoitti:

        laita joku esimerkki tiedostosta ja esimerkki siitä mitä siitä pitää ottaa.. eihän tuosta kukaan saa enää tolkkua.

        Skripti lukee jokaisen rivin tiedostosta ja tulostaa sen uuteen tiedostoon:

        while read inputline
        do
        echo $inputline >> uusidata.txt
        done < data.txt

        Ongelma:

        Jos "data.txt" tiedostossa on vaikka rivi:

        * Hello World

        Sen sijan, että se tulostaisi sen sellaisenaan uuteen tiedostoon, se suorittaa:

        echo * -kommennon, eli listaa kaikki tiedostot mitä on hakemistossa ja lisää listauksen uuteen tiedostoon.

        Kokeile vaikka itse, miten eroaa:

        $ echo Hello World > uusi.txt
        ja
        $ echo * Hello World > uusi.txt


      • /7\|/7\
        helppppp me kirjoitti:

        Skripti lukee jokaisen rivin tiedostosta ja tulostaa sen uuteen tiedostoon:

        while read inputline
        do
        echo $inputline >> uusidata.txt
        done < data.txt

        Ongelma:

        Jos "data.txt" tiedostossa on vaikka rivi:

        * Hello World

        Sen sijan, että se tulostaisi sen sellaisenaan uuteen tiedostoon, se suorittaa:

        echo * -kommennon, eli listaa kaikki tiedostot mitä on hakemistossa ja lisää listauksen uuteen tiedostoon.

        Kokeile vaikka itse, miten eroaa:

        $ echo Hello World > uusi.txt
        ja
        $ echo * Hello World > uusi.txt

        niin,
        bash skriptaus on yhtä tarkkaa puuhaa kuin krapulan parantelu kossulla tai ripulin parantelu piereskelemällä.

        #!/bin/bash

        abc="* jotain"

        #tama on eri juttu
        echo $abc >> teksti.txt
        #kuin tama
        echo "$abc" >> teksti.txt


      • helppppp me
        /7\|/7\ kirjoitti:

        niin,
        bash skriptaus on yhtä tarkkaa puuhaa kuin krapulan parantelu kossulla tai ripulin parantelu piereskelemällä.

        #!/bin/bash

        abc="* jotain"

        #tama on eri juttu
        echo $abc >> teksti.txt
        #kuin tama
        echo "$abc" >> teksti.txt

        Kiitos,

        Vielä jos keksisi mikä on tehokkain tapa poistaa merkkijonon lopusta ja alusta kaksi merkkia:

        abc="[[Hello Wordl]]"

        Pitäis saada motoon:

        "Hello World"


      • /7\|/7\
        helppppp me kirjoitti:

        Kiitos,

        Vielä jos keksisi mikä on tehokkain tapa poistaa merkkijonon lopusta ja alusta kaksi merkkia:

        abc="[[Hello Wordl]]"

        Pitäis saada motoon:

        "Hello World"

        vähän vois itekin yrittää???

        abc="aajotainbb"

        q=`echo ${abc%??}`
        a=`echo ${q#??}`

        tai sitte vaikka /\[\[// ja /\]\]//
        tms....


      • /7\|/7\
        /7\|/7\ kirjoitti:

        vähän vois itekin yrittää???

        abc="aajotainbb"

        q=`echo ${abc%??}`
        a=`echo ${q#??}`

        tai sitte vaikka /\[\[// ja /\]\]//
        tms....

        saako muuten kysyä, että miksi bashilla pitää tämän kanssa tapella?
        huvi ja urheilu??? :)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Takaisin ylös

    Luetuimmat keskustelut

    1. Sofia miksi soitit torstaina Stefanil ja pyysit käymään kun muka olet ahdistunut.?

      Oliko asia suunniteltu, kun pyysi käymään ja varmasti tiesi et miten Stefan asiaan suhtautuu.Oliko myös Seiskan toimittaja pyydetty tarkoituksella pai
      Kotimaiset julkkisjuorut
      120
      1924
    2. Stepuli itkee facessa

      Haluaisin pyytää julkisesti karseaa käytöstäni anteeksi lähimmiltä, naapureilta ja etenkin Sofialta! Ei ole missään olosuhteissa hyväksyttävää käyttä
      Kotimaiset julkkisjuorut
      125
      1818
    3. Martina oli sarjassaan tänään 32.

      Mutta eikö pyöräily ja uinti ole vahvempia hänellä kuin juoksu? Aikaa on vielä harjoitella ennen Frankfurtin kisoja.
      Kotimaiset julkkisjuorut
      210
      1778
    4. Sofia oli ainoastaan rahan takia suhteessa Stefanin ja Nikon kanssa.

      Järkyttävää miten Sofia on käyttänyt hyväksi näitä molempia miehiä ja rahat loppu niin vain haukkumiset tullut kiitokseksi heille.
      Kotimaiset julkkisjuorut
      256
      1454
    5. Voi kun menisi nyt Stefan katsoo tyttären uutta ponia, viettäisi aikaa hänen kanssa.

      Aika parantaa kaiken ja meillä kaikilla on elämässä vastoinkäymisiä ja yli kyllä pääsee ainakin ajan kanssa.
      Kotimaiset julkkisjuorut
      134
      1386
    6. Suomi teki typeryyttään Venäjästä nyt konkreettisesti vihollisen, jota se ei aiemmin ollut.

      Venäjä ei ole uhannut Suomen turvallisuutta, eikä Venäjän ja Ukrainan välinen konflikti ole signaloinut minkäänlaista uhkaa Suomelle. Se "uhka" luotii
      Maailman menoa
      496
      1038
    7. Minä menetän sinut kokonaan

      Siksi olen paniikissa, sekaisin ja surullinen. Taitaa olla jonkinasteinen stressitila päällä. Toivottavasti sinulla on kaikki hyvin.
      Ikävä
      50
      969
    8. Veikkauksia milloin Venäjä hyökkää Suomeen?

      Veikkaan että se tapahtuu nopeasti, ehkäpä jo kesäkuussa. Suomi 5,5 miljoonan harvaan asuttu maa. Venäjä ei tarvitse suurta joukkoa Suomeen, joten kai
      Maailman menoa
      237
      915
    9. Onpas Martina valinnut sopivan laulun

      Storyssa kun Isben poni tulee, " älä vie lapsuuttani pois." Äiti se lähtee mieluummin panopuuksi hotelliin, kuin viettäisi senkin ajan lastensa kanssa
      Kotimaiset julkkisjuorut
      115
      912
    10. Uskomatonta miten "kassatyttö Sannasta" tuli hetkessä kuoleman kauppias.

      Demarit on kautta historian olleet "takinkääntäjien"mestariluokkaa kokoomuksen hihassa kiinni. Sannan arviointikyky petti täysin Naton suhteen, Brysse
      Maailman menoa
      347
      874
    Aihe