Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    43

    Numerazione delle linee (con trim)

    Hi,
    is there any more clever way of line numbering, than using nl or cat -n + sed, if I want left trimmed numbers?

    dcop | sort | nl | sed 's/ //' | sed 's/\t/ /'

    Explanation:
    dcop (for who does not know) = Desktop Communication Protocol, that is, the KDE tool for
    ...............................................dat a interchange among KDE applications
    sort | nl ............................... = ordered and line numbered output
    sed 's/ //' ............................ = left trim of 4 blanks
    sed 's/\t/ /' ........................... = substitution of the tab with a blank.

    Is there any shorter command?

    P.S. Scusate se non ho messo in in italiano il "post" gia' sottoposto (senza esito) a un forum Linux, ma sono diventato pigro e inoltre gli appassionati di Linux "devono" conoscere l'Inglese (almeno quello tecnico e, a maggior ragione, il "mio").

    L'unica risposta che ho avuto e' stata che nl va bene. Io essendo quasi un "newbie", vorrei essere sicuro che non ci sia un metodo per formattare i numeri (come invece c'e' per le date).

    Tanto per chiarire, nel mio caso io voglio applicare un "left trim" pero' sulla base del numero piu' grande. ...Probabilmente ho confuso le idee invece di chiarirle.
    La cosa migliore e' provare gli esempi da me riportati.
    Se non usate KDE, va bene un qualsiasi "cat', invece di "dcop".

    Se continuo ancora, smentisco la mia fama di "pigro"....

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    per quanto l'inglese sia importante, il forum è impostato sulla lingua italiana.

    non mi è chiara comunque l'intenzione della tua multi-pipe.

    ciao.
    slack? smack!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    43
    Il colmo e' un rimprovero da parte di un torinese come me!

    Purtroppo se non sai l'inglese in Linux avrai molte difficolta' con la documentazione.

    Il mio post e' indirizzato agli esperti che sicuramente conoscono l'inglese meglio di me...

  4. #4
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    ciao compaesano.
    non mi pare di aver detto di non conoscere l'inglese.
    ho solamente detto che non capisco cosa vuoi fare con quella pipe. se puoi chiarirmi le idee.

    [edit]
    questa frase non mi è chiara:
    Tanto per chiarire, nel mio caso io voglio applicare un "left trim" pero' sulla base del numero piu' grande
    [/edit]
    slack? smack!

  5. #5
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    forse intendi qualcosa del genere:
    codice:
    [sergio@tweety ~]$ cat $FILE_QUALUNQUE | nl | sed 's/ \{,9\}//;s/\t/ /'
    Sostituisci quel 9 con il valore che ritieni piu' opportuno,

    ciao.

    ps: anch'io sono niubbo, ma provo a discutere



    [EDIT]
    aggiungo che 'cat -b file' numera l'output delle righe,
    ma ho utilizzato la pipe su 'nl' come da tuo esempio
    [/EDIT]
    slack? smack!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    43
    comando: dcop | sort | nl
    -----1--kaccess
    -----2--kded
    -----3--kdesktop
    -----4--kdf-4667
    -----5--khotkeys
    -----6--kicker
    -----7--klauncher
    -----8--kmix
    -----9--knotes
    ----10--knotify
    ----11--konsole-4843
    ----12--kopete
    ----13--korgac
    ----14--ksmserver
    ----15--kwin
    ----16--kwrited
    ----17--randr
    Il comando nl aggiunge la numerazione alle linee che gli si passa (in questo caso con il pipe) e inoltre aggiunge un tab dopo il numero.

    Io voglio avere una lista come la seguente:
    dcop | sort| nl | sed 's/----//' | sed 's/\t/-/'
    -1-kaccess
    -2-kded
    -3-kdesktop
    -4-kdf-4667
    -5-khotkeys
    -6-kicker
    -7-klauncher
    -8-kmix
    -9-knotes
    10-knotify
    11-konsole-4843
    12-kopete
    13-korgac
    14-ksmserver
    15-kwin
    16-kwrite-4953
    17-kwrited
    18-randr
    Al posto di '-' usa un blank. Left trim vuol dire togliere i blank all'inizio della linea, pero', nel mio caso, devono rimanere i blank davanti ai numeri inferiori a 10 (per questo facevo riferimento al numero piu' grande...)

  7. #7
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    ma almeno hai provato la linea di comando che ti ho dato???
    slack? smack!

  8. #8
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    senti, te la scrivo di nuovo, altrimenti facciamo mattina...

    codice:
    [sergio@tweety ~]$ cat $FILE_QUALUNQUE | nl | sed 's/ \{4\}//;s/\t/ /'
    Cosi' trimmi come vuoi tu per output inferiori alle 100 righe
    Se ti serve correggere per numeri più grandi, modifica quel quattro con 5(N<1000), ecc.

    ciao, ora è tardi.
    slack? smack!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    43
    Vedo che sei nottambulo come me..., ma non mi dai quasi tempo di rispondere.
    cat -b number nonblank output lines
    cat -n number all output lines
    Pero' il risultato a livello di formattazione della numerazione della linea e' uguale a nl.

  10. #10
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    Per quello bastava il man.
    Hai provato quanto stiamo discutendo o no???
    Fai sapere al popolo.

    slack? smack!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.