Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    riformattazione testo con script di shell

    dunque, ho un file di testo con migliaia di righe nello stesso formato:

    testo testo1
    testo testo2
    testo testo3

    e così via

    fra 'testo' (che non cambia mai) e 'testoN' (che varia ad ogni riga) ci sono 10 spazi che devono essere sostituiti da due tabulazioni, e al fondo della stringa vanno inserite due tabulazioni e la stringa 'yes'

    in pratica diventa così:

    testo testo1 yes
    testo testo2 yes
    testo testo3 yes

    coi campi separati da due tab

    che si può fare? magari anche col vi ci si riesce ma non saprei come

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    746
    codice:
    #!/bin/bash -e
    
    infile="${1}"
    outfile="${2}"
    text="${3}"
    
    if [ -f "${2}" ] ; then
    	 echo "Error: destination file \"${2}\" already exists."
    	 exit 2
    fi
    
    if [ -z "${text}" ] ; then
          text="testo"
    fi
    
    cat ${infile} \
       |sed -e "/^$/d" -e "s/${text}/${text}		/g" \
            -e "s/$/		yes/"   \
       >    "${outfile}"
    #così eviti di rovinare il file, nel caso qualcosa non andasse (non si sa mai...)
    
    echo "Done."
    
    exit 0

  4. #4
    uh grazie ma nel frattempo avevo già riformattato con più passate di sed

    mi ero scordato di rispondere...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.