numeroita

Olis tekstitiedostossa läjä numeroita tyyliin:
4 56 8 102
78 1 11
6
90 150 111 45
jne pari sataa riviä...

Onko olemassa jokin näppärä komentorivikäsky, jolla voisi katsoa miten monta kertaa vaikkapa numero 5 esiintyy tässä koko listassa?
11317
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat

Osoittaa toki älykkyyttä kysellä palstoilla, miten kotiläksysi saisit vaivattomimmin tehdyksi.
Luulen, että kaipaat komentoa wc.

Äänestä
  • python -c 'l=[j.strip() for i in open("/etc/fstab").readlines() for j in i.split(" ") if j]; print l.count(mitä_haet)'

    hehe

    Äänestä

  • asdffda kirjoitti:

    python -c 'l=[j.strip() for i in open("/etc/fstab").readlines() for j in i.split(" ") if j]; print l.count(mitä_haet)'

    hehe

    python -c 'print [i.strip() for i in open("/etc/fstab").read().split() if i].count(jotain)'

    vähä lyhyempi

    Äänestä

  • asdffda kirjoitti:

    python -c 'l=[j.strip() for i in open("/etc/fstab").readlines() for j in i.split(" ") if j]; print l.count(mitä_haet)'

    hehe

    Python on ohjelmointikieli. Vastaavanhan olisi voinut tehdä monella muullakin ohjelmointikielellä.
    Alkuperäinen kysymys liittyi paremminkin shelliin tai jakelusta löytyviin ohjelmiin.

    Äänestä

  • muiden tehtäviksi? kirjoitti:

    Python on ohjelmointikieli. Vastaavanhan olisi voinut tehdä monella muullakin ohjelmointikielellä.
    Alkuperäinen kysymys liittyi paremminkin shelliin tai jakelusta löytyviin ohjelmiin.

    shell scriptaaminen ja regex

    Äänestä

cat lista |grep -oe "5." |grep -ve "5[0-9]$"

jossa tuo jälkimmäinen grep poistaa esim:
51, 555 ,5403

Äänestä
  • ai niin niiden määrä piti laskea. eli näin:
    cat lista |grep -oe "5." |grep -ve "5[0-9]$" |wc -w

    ja tuo "lista" on siis se tiedosto jossa ne numerot on..

    Äänestä

  • unohtui.. kirjoitti:

    ai niin niiden määrä piti laskea. eli näin:
    cat lista |grep -oe "5." |grep -ve "5[0-9]$" |wc -w

    ja tuo "lista" on siis se tiedosto jossa ne numerot on..

    rivillä on moneen kertaan haettu numero?

    Äänestä

  • toi jos samalla kirjoitti:

    rivillä on moneen kertaan haettu numero?

    oma lista:
    4 56 8 102
    78 1 11
    6 5 5955
    90 150 111 45
    5 10 20 11 22 5
    40
    123 5 332 15 51 555

    niin kun muutin hakuehdoksi "1" niin se löysikin noita 11 ja 111-lukuja..
    pitää vielä fiksata ennen kuin toimii..

    Äänestä

  • toimi.. kirjoitti:

    oma lista:
    4 56 8 102
    78 1 11
    6 5 5955
    90 150 111 45
    5 10 20 11 22 5
    40
    123 5 332 15 51 555

    niin kun muutin hakuehdoksi "1" niin se löysikin noita 11 ja 111-lukuja..
    pitää vielä fiksata ennen kuin toimii..

    grep -ow "5" lista |wc -w


    ja lista oli:
    ---
    4 56 8 102
    78 1 11
    6 5 5955
    90 150 111 45
    5 10 20 1
    1 22 5
    40
    123 5 332 15 51 555
    123 222 12
    3
    55
    ---

    niin nyt se laskee listasta jonkin ylimääräisen vitosen..
    kaikilla muilla luvuilla näytti toimivan.
    no ehkä vain en osaa..

    Äänestä

  • täysin.. kirjoitti:

    grep -ow "5" lista |wc -w


    ja lista oli:
    ---
    4 56 8 102
    78 1 11
    6 5 5955
    90 150 111 45
    5 10 20 1
    1 22 5
    40
    123 5 332 15 51 555
    123 222 12
    3
    55
    ---

    niin nyt se laskee listasta jonkin ylimääräisen vitosen..
    kaikilla muilla luvuilla näytti toimivan.
    no ehkä vain en osaa..

    Grepillä yritin tuota myös aluksi ratkoa, mutta en keksinyt siihen toimivia parametrejä. Pulma ratkesi (jos nyt jotain sattuu kiinnostamaan...) kopioimalla lukusarjat OpenOfficen Calciin ja loihtimalla johonkin soluun loitsu
    =COUNTIF(A$1:A$544;$H2)
    Tämä siis laskee sarakkeesta A riveiltä 1-544, että miten monella rivillä sijaitsee soluun H2 syötetty luku. Lukusarjoissani kun oli maksimissaan 6 lukua per rivi, niin tuo sama kaava sitten kopioidaan vielä viiteen seuraavaan soluun ja rimpsun loppuun kaava, joka summaa nämä yhteen.

    Toimii näinkin, mutta hieman vaivalloinen verrattuna siihen, jos koko roskan olisi saanut suoraan komentoriviltä yhdellä käskyllä.

    Äänestä

Kommentoi aloitusta


...---... kirjoitti:

Olis tekstitiedostossa läjä numeroita tyyliin:
4 56 8 102
78 1 11
6
90 150 111 45
jne pari sataa riviä...

Onko olemassa jokin näppärä komentorivikäsky, jolla voisi katsoa miten monta kertaa vaikkapa numero 5 esiintyy tässä koko listassa?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu