GNU/Linux >> Linux Esercitazione >  >> Linux

Prendi la prima colonna da 2 file e scrivila in un terzo file?

Supponiamo di avere 2 file, ABC.txt &PQR.txt con i dati riportati di seguito a titolo esemplificativo:

ABC.txt:

ABC DEF

PQR.txt:

PQR XYZ

Voglio grep colonna 1 da entrambi i file e scrivi in ​​un terzo file di testo. Come si può fare?

Il mio output previsto è (output.txt):

ABC PQR

Risposta accettata:

Ecco un paio di modi:

  • Usando paste e cut :

    $ paste -d ' ' <(cut -d' ' -f 1 ABC.txt ) <(cut -d' ' -f 1 PQR.txt ) > output.txt
    ABC PQR
    

    Se il tuo sistema non supporta la sostituzione dei processi, usa invece questo:

    $ cut -d' ' -f 1 ABC.txt > /tmp/aa; cut -d' ' -f 1 PQR.txt > /tmp/bb; paste -d ' ' /tmp/aa /tmp/bb
    
  • Usando awk (grazie @Costas):

    awk 'FNR==NR{a[FNR]=$1; next}{print a[FNR],$1}' ABC.txt PQR.txt > output.txt
    

    La variabile speciale FNR è il numero di riga del file di input corrente e NR è il numero di riga dell'input in generale, qualunque sia il file da cui proviene. I due sono uguali solo durante la lettura del primo file di input. Quindi, i primi campi del primo file vengono salvati nel a matrice (a[FNR]=$1 ) le cui chiavi sono numeri di riga e i cui valori sono i primi campi. Quindi, quando viene raggiunto il secondo file, stampiamo il valore corrispondente al suo numero di riga (a[NR] ) e il 1° campo della riga corrente.


Linux
  1. Trova file e directory su Linux con il comando find

  2. Leggi e scrivi dati da qualsiasi luogo con reindirizzamento nel terminale Linux

  3. Come eliminare file e directory in Linux dalla riga di comando

  4. Scrivere su file .txt?

  5. Come eliminare la prima colonna (che in realtà è il nome della riga) da un file di dati in Linux?

Scarica file con Wget sulla shell Linux - Spiegazione ed esempi

Impedisci la cancellazione o la modifica accidentale di file e cartelle in Linux

Come prevenire e ripristinare l'eliminazione accidentale di file in Linux

Gestione file Linux dal terminale

Come rimuovere le linee che appaiono sul file B da un altro file A?

Prendi l'ennesima colonna in un file di testo