Salve a tutti,

Mi spiego meglio. Mi servirebbe un comando che mi permetta di salvare su un 3° documento testuale solamente ciò che in un primo testo 1° testo ecceda rispetto ad un 2° testo.

Illustro l'uso che ne farei in questo caso.

Creerei la lista dei pacchetti del 13.10 e quella del 14.04 dopo l'installazione:

dpkg --get-selections > ~/pacchetti_13_10.txt
dpkg --get-selections > ~/pacchetti_14.04.txt

poi ne farei un confronto creando il terzo documento con questo comando. Avrei così modo di avere una lista di pacchetti molto più breve dalla quale selezionare quali pacchetti reinstallare e quali no.

chiesto 28 Mag '14, 11:50

gisnio-sell's gravatar image

gisnio-sell
871425977

modificato 05 Lug '14, 14:23

enzotib's gravatar image

enzotib ♦♦
14.0k112186

1

Grazie enzotib e dadexis , in realtà avevo intenzione di agire manualmente selezionando cosa installare e cosa no, dopo aver ridotto la lista

(28 Mag '14, 19:06) gisnio-sell gisnio-sell's gravatar image
1

Guargando l' --help del comando diff ho trovato un modo per ridurre la lista alle sole differenze, incolonnando anche i due doc uno a fianco a l'altro nel terminale per fare un confronto instantaneo.

diff --suppress-common-lines -y pacchetti_13_10_pcmary.txt pacchetti_14_04.txt
(28 Mag '14, 20:23) gisnio-sell gisnio-sell's gravatar image

Grazie ad entrambi, difficile scegliere la migliore fra due ottime risposte. Vado con quella che ho sperimentato per prima.

(28 Mag '14, 21:26) gisnio-sell gisnio-sell's gravatar image
1

confrontando i pacchetti di due release potrai trovare: pacchetti nuovi, pacchetti rimossi o modificati (cambio di versione). Analizzando le differenze, fai attenzione a questo aspetto, per sapere quale comando eseguire.

(29 Mag '14, 09:17) letizia letizia's gravatar image

Letizia In realtà, con la lista creata vaglio prima di reinstallare

Ho già ad esempio eliminato tutte le voci delle librerie e quelle che cominciano per python-.... poi con i restanti dò un occhiata alla descrizione usando synaptic, faccio "le pulizie di primavera" e reinstallo solo le applicazioni che mi servono ancora... in maniera molto manuale :)

(29 Mag '14, 11:44) gisnio-sell gisnio-sell's gravatar image
1

si, scusa, era solo un warning :)

(29 Mag '14, 12:23) letizia letizia's gravatar image

grassie :)

(29 Mag '14, 16:20) gisnio-sell gisnio-sell's gravatar image

A parte il fatto che non potrebbe non funzionare perché alcuni pacchetti di sistema che servivano sulla 13.10 potrebbero andare in conflitto con quelli di sistema della 14.04 (specialmente le librerie), puoi usare diff

diff ~/pacchetti_13_10.txt ~/pacchetti_14.04.txt > differenze.txt

Ad esempio:

~: echo "a" > 1; echo "c" >> 1; cat 1
a
c
~: echo "b" > 2; echo "c" >> 2; cat 2
b
c
~: diff 1 2 > 3; cat 3
1c1
< a
---
> b
coll. permanente

ha risposto 28 Mag '14, 13:40

dadexix86's gravatar image

dadexix86 ♦♦
16.9k716161

modificato 28 Mag '14, 13:41

Dadexis, non ho capito molto bene i comandi sottostanti (quelli con echo etc.. ) a cosa servono ? Riesco a sopprimere ulteriori info non necessarie?

(28 Mag '14, 20:21) gisnio-sell gisnio-sell's gravatar image
1

I primi due creano due file, il primo contiene

a
c

il secondo

b
c

e il terzo li compara, dicendoti che le differenze sono che nella prima riga del primo comparata con la prima riga del secondo (1c1) ci sono una a nel primo < a e una b nel secondo > b.

Il tutto viene redirezionato su un terzo file (che ho chiamato 3) che poi viene stampato a schermo.

(28 Mag '14, 20:24) dadexix86 ♦♦ dadexix86's gravatar image

Grazie mille per l'info.

(28 Mag '14, 20:36) gisnio-sell gisnio-sell's gravatar image
1

Prego! Potresti redirezionare l'output del tuo comando sopra, su un altro file, semplicemente aggiungendo > differenze.txt al fondo della stringa, per poi aprirlo con un editor di testo e modificarlo ;)

(28 Mag '14, 20:40) dadexix86 ♦♦ dadexix86's gravatar image

Seguirò il consiglio, sto reinstallando pian piano e mi ero copiato tutto l'output da terminale ... grazie ancora

(28 Mag '14, 21:21) gisnio-sell gisnio-sell's gravatar image

Ferme restando le perplessità di @dadexix86 che condivido sull'uso che ne vuoi fare, suggerisco un comando un po' più complicato:

join -t '' -v1 <(sort file1) <(sort file2)

join è un comando che è in grado di fare l'intersezione, l'unione o il complemento di due file ordinati. Nel caso in oggetto ho messo -t '' per far sì che consideri tutta la linea come elemento di confronto, senza considerare separatori di campo, e ho messo -v1 che significa quello che c'è nel file1 ma non c'è nel file2.
Per sicurezza ho contestualmente ordinato (in memoria) i due file prima del confronto, dato che join lavora su file ordinati.

coll. permanente

ha risposto 28 Mag '14, 16:57

enzotib's gravatar image

enzotib ♦♦
14.0k112186

La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×133
×2

domanda posta: 28 Mag '14, 11:50

domanda visualizzata: 828 volte

ultimo aggiornamento: 05 Lug '14, 14:23

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.