Tengo un archivo de texto en el servidor Linux CentOS 7 que incluye muchas entradas en el siguiente formato:
1234567890123456, 1, 17, cde, Test Test
1234567890123456, 2, 17, cde, Test Test
1234567890123456, 3, 17, cde, Test Test
1234567890123456, 4, 17, cde, Test Test
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
1234567890123456, 1, 17, cde, Test Test
¿Qué comando debo usar para eliminar?
1, 17
2, 17
3, 17
4, 17
entonces el resultado debería ser
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
Respuesta1
awkacercarse:
awk -F, '!($2<5 && $3==17)' file
La salida:
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
-F,
- separador de campo$2
,$3
- representan el segundo y tercer campo respectivamente
Respuesta2
Para excluir esos valores exactos, aprovechando el punto en común de que la exclusión del campo 3 es siempre '17':
awk -F, '!($3 == 17 && ($2 == 1 || $2 == 2 || $2 == 3 || $2 == 4))' < input > output