Cercare un awk (o sed) one-liner per rimuovere le righe dall'output se il primo campo è un duplicato.Rimuovi riga se il campo è duplicato
Un esempio per la rimozione di righe duplicate che ho visto è:
awk 'a !~ $0; {a=$0}'
provato ad utilizzare per una base senza fortuna (ho pensato cambiando il $ 0 a $ 1 di di farebbe il trucco, ma non sembra funzionare).
hai chiesto di rimuovere le linee 'se le prime partite di campo' ... che cosa? Ho assunto "lo stesso valore del primo campo in alcune linee di input precedenti"; un'altra persona ha assunto "qualche schema particolare". Cosa intendevi? –
La tua versione modificata 'awk 'a! ~ $ 1; {a = $ 1} ''* funziona per me * per i duplicati adiacenti (ad esempio un file ordinato). ** La versione ** di Jonathan Leffler ha il vantaggio che funzionerà per rimuovere i duplicati su un file non ordinato, ma a spese della creazione di un array potenzialmente grande. –
Penso che il mio problema principale fosse che avevo a che fare con alcuni tipi diversi di separatori di campo e che non stavo definendo correttamente il sistema operativo. – Kyle