Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    sostituire virgole con punti

    Salve

    io ho delle directory conteneti 400 files, in ciascun file ho una serie di numeri.


    io vorrei uno scriptino bash che sostituisca a tutte le virgole il punto (, --> .) ricorsivamente in ogni file di una directory

    se non sbaglio serve awk ma non ho molto tempo di spulciare il manuale

    Se qualche anima pia ha uno script a portata di mano mi fa un grande favore

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    man rename

    cerca sul forum, se ne e' ampiamente discusso con tanto di codice...

    ciao
    slack? smack!

  3. #3
    non nel nome del file ma nel contenuto

  4. #4
    Su internet ho trovato questo pezzo di codicillo:

    Posso pertanto riscrivere il file delle password con le virgole al posto dei due punti semplicemente con:

    cat /etc/passwd | awk 'BEGIN { FS=":"; OFS="," } { print }'
    lo potrei modificare ai miei scopi ed inserire in uno script bash ... ma non funziona

    Qualcuno conosce awk tanto da darmi un suggerimento?

  5. #5
    Prova con sed:
    sed -e 's/,/./g' $file
    “Guardo in alto mentre cammino, così le lacrime non scenderanno...”
    Kyu Sakamoto

  6. #6
    Grazie funzia

    ora devo fare uno script bash che fa questo in circa 400 file in una stessa directory.

    i file sono del tipo:

    acquisizione1
    acquisizione2

    ...

    acquisizione400



    suggerimenti?

  7. #7
    Lancia questo script nella directory che contiene i file da modificare.
    (Fatti una copia di backup, non mi assumo responsabilità in caso di disastri )

    codice:
    #! /bin/sh
    list=`ls`
    for file in $list do
    	sed -e 's/,/./g' $file
    done
    “Guardo in alto mentre cammino, così le lacrime non scenderanno...”
    Kyu Sakamoto

  8. #8
    edit i file sono in questo formato

    acquisizione 1.txt

    ....

    acquisizione 400.txt

    lo script riporta l'errore

    line 5 : acqusizione: command not found

    p.S.

    dopo $list prima di do ci va il ;

    #! /bin/sh

    cd 'Directory'

    list=`ls`
    for file in $list ; do
    sed -e 's/,/./g' $file
    done

  9. #9
    Originariamente inviato da marco@linuxbox
    edit i file sono in questo formato

    acquisizione 1.txt

    ....

    acquisizione 400.txt

    lo script riporta l'errore

    line 5 : acqusizione: command not found
    L'errore è causato dal fatto che i nomi dei file contengono lo spazio;
    Prova con le virgolette: sed -e 's/,/./g' "$file"


    dopo $list prima di do ci va il ;
    Oops, mi è sfuggito
    “Guardo in alto mentre cammino, così le lacrime non scenderanno...”
    Kyu Sakamoto

  10. #10
    ancora lo stesso errore

    ho provato anche a rinominarli tutti senza lo spazio ma mi da un errore ancora piu` assurdo

    line 5 : ./acqusizione1.txt : Permission denied


    P.S.

    il file c'e` e ho tutti i permessi giusti

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.