смена каталога происходит очень медленно

Sería bastante fácil hacer esto con awk, contando el número de campos en cada línea en fileAque son iguales a las cadenas en el archivo include.txt:

awk 'NR == FNR { p[$1]; next }
     {
         c = 0
         for (i = 1; i <= NF; ++i) if ($i in p) c++
         if ( c >= 2 ) print
     }' include.txt fileA

Primero lee el archivo include.txty usa las palabras como claves en una matriz asociativa. Luego lee el segundo archivo y para cada fila, itera sobre los campos y prueba cada uno para ver si coincide con alguna de las claves.

Para cada coincidencia, incrementamos un contador, y si el contador es igual o mayor que dos al final, imprimimos la línea.


Formulación alternativa del código para personas a las que les gusta "una -líneas":

awk 'NR==FNR {p[$1];next} {c=0;for (i=1;i<=NF;++i) if ($i in p) c++} c>=2' include.txt fileA
2
10.10.2017, 03:11
0 ответов

Теги

Похожие вопросы