stella_650
23-06-2008, 17:11
ciao ragazzi, un aiutino per una questione da risolvere con uno script...
mi si chiede di contare le righe di due file, file1 e file2 ed eliminare le righe in eccesso in modo che i due file abbiano lo stesso numero di righe.
Ho realizzato una piccola funzione CONTELIMRIGHE.lib che:
-calcola il numero di righe del primo file
-calcola il numero di righe del secondo file
-calcola la differenza di righe del primo e del secondo file
-elimina le righe da 1 a diff di file1
Il problema è proprio nell'ultima istruzione, perchè quando vado ad eseguire nel mio script questa funzione, dopo il calcolo esatto di diff, ottengo questo error:
sed: -e expression #1, char 6: extra characters after command
cioè la notazione con 1,${diff}d non me l'accetta.
CONTELIMRIGHE()
{
riga1=`wc -l file1 | awk '{print $1}'`
riga2=`wc -l file2 | awk '{print $1}'`
echo "RIGHE file1 ---> $riga1"
echo "RIGHE file2 ---> $riga2"
diff=`expr $riga1 - $riga2`
echo "Differenza di righe tra i due file ---> $diff"
sed '1,${diff}d' file1
}
come posso fare?Esiste un'alternativa?o cosa devo correggere?
Grazie ...
mi si chiede di contare le righe di due file, file1 e file2 ed eliminare le righe in eccesso in modo che i due file abbiano lo stesso numero di righe.
Ho realizzato una piccola funzione CONTELIMRIGHE.lib che:
-calcola il numero di righe del primo file
-calcola il numero di righe del secondo file
-calcola la differenza di righe del primo e del secondo file
-elimina le righe da 1 a diff di file1
Il problema è proprio nell'ultima istruzione, perchè quando vado ad eseguire nel mio script questa funzione, dopo il calcolo esatto di diff, ottengo questo error:
sed: -e expression #1, char 6: extra characters after command
cioè la notazione con 1,${diff}d non me l'accetta.
CONTELIMRIGHE()
{
riga1=`wc -l file1 | awk '{print $1}'`
riga2=`wc -l file2 | awk '{print $1}'`
echo "RIGHE file1 ---> $riga1"
echo "RIGHE file2 ---> $riga2"
diff=`expr $riga1 - $riga2`
echo "Differenza di righe tra i due file ---> $diff"
sed '1,${diff}d' file1
}
come posso fare?Esiste un'alternativa?o cosa devo correggere?
Grazie ...