lunedì 12 novembre 2012

Brevi esercizi. #1 Touch e tee

Su un sistema linux ci sono tanti modi per fare una determinata operazione. Proprio alla luce di questo assunto, cerco di rompere il ghiaccio: Faccio delle cose con la speranza che voi mi diciate, "ehi, si può fare anche diversamente!" Posterete nei commenti le vostre proposte, vero? :))

Partiamo da cose semplici semplici....Chissà se l'idea di questi post diventi un sequel, proprio come è successo con "Un po' di AWK"... Intanto nel titolo ho messo #1...poi si vedrà!


Apro il terminale e creo una cartella

$ mkdir test

Mi sposto nella cartella creata

$ cd test

Creo dieci file di testo

$ touch {1..10}.txt

Scrivo la stessa frase in ognuno di essi

$ echo 'buongiorno a tutti!' | tee -a *.txt

Adesso con grep vado a cercare la stringa "buongiorno" nei dieci file.

$ grep "buongiorno" *.txt

La  cartella test l'ho creata nella home. Poi con cd ci sono entrato e ora con cd ne esco...

$ cd

Finito l'esercizio, cancello cartella e i file in essa contenuti. A tal proposito Il comando da usare è rm -r, anche se io consiglio sempre rm -ir. Provate e capite il perchè.

$ rm -ir test

Alla prossima!


11 commenti:

  1. cd serve a cambiare directory (noi vecchi chiamiamo così le cartelle, quando non siamo in ambiente grafico).
    cd .. va alla dir "madre", cioè superiore di un livello.
    cd da solo va nella tua home, equivale a cd ~
    Con la tastiera italiana ~ lo ottieni con AltGr + ^
    P.S.: bello il nuovo layout (anche se te l'ho già detto).

    RispondiElimina
  2. Ciao.
    Ecco come farei in Lua:
    [sourcecode]
    #!/usr/bin/lua

    -- comando per la creazione di file di testo
    -- arg1 -> numero file (default 10)

    local numfile = arg[1] or 10

    local text = "Buongiorno a tutti!"
    --local wd = lfs.currentdir()

    for i = 1, numfile do
    local f = assert(io.open( i..".txt" , "w" ))
    f:write(text)
    f:close()
    end
    [/sourcecode]

    e da terminale:
    $ mkfile
    oppure
    $ mkfile 100
    Saluti.

    RispondiElimina
    Risposte
    1. Roberto, sei un mito!!! Grazie per il tuo commento! :)

      Elimina
  3. Scusa mi cancelli nel commento la riga:
    --local wd = lfs.currentdir()

    e poi cancella pure questo commento.
    Non riesco a modificarlo.
    Grazie Mille.
    R.

    RispondiElimina
    Risposte
    1. Purtroppo blogger non mi fa modificare i commenti. Chi vuole usare il tuo script può correggerselo da solo tenendo conto di questo tuo secondo messaggio. :) Mi hai fatto venire in mente l'ispettore Gadget con i suoi messaggi che si autodistruggono nel giro di pochi secondi... Penso che sarebbe una bella trovata introdurli in un blog :D

      Elimina
  4. Ecco una versione in Go:
    package main

    import (
    "io/ioutil"
    "fmt"
    )

    var text []byte = []byte("Buongiorno a tutti!")

    func main() {
    for i:=1; i<10; i++ {
    t :=fmt.Sprintf("%d.txt", i)
    ioutil.WriteFile(t,text, 0644)
    }
    }

    Gulp!

    RispondiElimina
    Risposte
    1. :)) Grazie!!! Intanto aspetto la prossima lezione di Go sul blog di Juhan! Chissà se si ricorda di scriverla... LOL

      Elimina
  5. Ragazzi correte troppo! Lua meriterebbe una telenovela tutta sua e per Go sono ancora all'inizio. Anche se questi script si capiscono al volo, vero?
    Se poi blogspot rispettasse i rientri (indentazione)...

    RispondiElimina
  6. in python.
    [sourcecode]
    for i in range(1,11):
    open(str(i) + ".txt","w").write('Buon giorno a tutti')
    [/sourcecode]
    Per la ricerca devo cercare

    RispondiElimina
  7. Occhio: si è persa l'indenazione, necessaria, nella seconda riga

    RispondiElimina