Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> sistemi >> Linux >> .

Come rimuovere le righe duplicate in VI

Vi è un comando potente riga di testo editor di natale a Unix . Anche se non è possibile rimuovere le righe duplicate di testo con i comandi di vi native , è possibile farlo utilizzando i comandi Unix nativi e gli script di shell all'interno dell'editor . Cose che ti serviranno
Unix o Linux
Mostra più Istruzioni Istruzioni
1

fare un backup del file : . W doc.bkup

2

Se è accettabile per ordinare le voci nel file di testo , utilizzare prima il comando sort :

: 1 , $ sorta

Questo comando dice " utilizzare UNIX . comando sort sulla linea 1 alla fine del file "
3

Utilizzare il comando Unix uniq per rimuovere le righe duplicate

: . ! 1 , $ uniq

Questo comando dice " utilizzare il comando Unix uniq per rimuovere le righe duplicate dalla linea 1 alla fine del file . " il comando uniq funziona solo su linee duplicate che sono adiacenti tra loro e non hanno alcun righe vuote tra di loro .
4

Sappiate che , se non è possibile ordinare il file , sarà necessario utilizzare uno script awk . Awk è un programma di utilità di testo Unix - manipolazione . Quando viene utilizzato con vi , eseguirà lavori avanzati che da sola vi non può fare.

Copiare il seguente script in un documento di testo e salvarlo con il nome dup.sh nella stessa directory del documento di testo .

# /bin /bashawk ' ($ 0 in uno !) {a [$ 0]; } print '

Questo script dice " . trovare ogni linea unica e stamparlo "

5

dalla riga di comando Unix , rendere lo script eseguibile dup.sh con il comando :

chmod + x dup.sh
6

Rimuovere le righe duplicate non consecutivi dal all'interno vi con il seguente comando :

: ". . eseguire lo script dup.sh dalla linea 1 alla fine del file " 1 , $ /dup.sh

Questo comando dice:
7

Salvare il file con il comando

: . w

 

sistemi © www.354353.com