PDA

Visualizza la versione completa : riformattazione testo con script di shell


Caleb
24-06-2006, 12:41
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

sacarde
24-06-2006, 13:58
http://www.gentoo.org/doc/it/articles/l-sed1.xml

U-bahn
24-06-2006, 16:16
#!/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

Caleb
24-06-2006, 16:26
uh grazie ma nel frattempo avevo già riformattato con più passate di sed

mi ero scordato di rispondere...

Loading