quindi lasciatemi spiegare questo un po 'di più:Bash. Ottenere intersezione da più file
Ho una directory chiamata tag che ha un file per ogni tag, qualcosa come:
tags/
t1
t2
t3
In ciascuno dei file tag è una struttura come:
<inode> <filename> <filepath>
Naturalmente, ogni file di tag avrà un elenco di molti file con quel tag (ma un file può apparire solo nel file un tag una volta). E un file potrebbe trovarsi in più file di tag.
Quello che voglio essere in grado di fare è chiamare un comando come
tags <t1> <t2>
e lo hanno elencare i file che hanno sia il t1 e t2 tag in un bel modo.
Il mio piano adesso era di creare un file temporaneo. In pratica, genera l'intero file di t1 in esso. Quindi esegui ogni riga in t2 e fai un awk sul file. E continua a farlo.
Ma mi chiedo se qualcuno ha altri modi. Io non sono eccessivamente familiarità con awk, grep ecc
La stessa riga può apparire più volte in un singolo file? –
No. Il modo in cui l'ho adesso è che il file sarà nel file dei tag solo una volta. – Jonovono
BashFAQ # 36 è on-point: http://mywiki.wooledge.org/BashFAQ/036 –