
Quiero crear un archivo con dos tablas.
Por ejemplo:
Tengo esto:
cat 1.log | cut -d: -f 9 | sort | uniq
teste
teste2
teste3
y tengo otro comando:
cat 1.log | cut -d: -f 6 | cut -d " " -f2 | sort | uniq
devolver:
hello
good
bed
y quiero crear un archivo como ese:
teste | hello
teste2 | good
teste3 | bed
¿Como hacer esto?
Respuesta1
aunque solicita un csv, de hecho está solicitando un archivo delimitado por barras verticales
puedes lograr esto con el paste
comando:
paste -d '|' file1.txt file2.txt
lo que te dará el siguiente resultado:
teste|hello
teste2|good
teste3|bed
el -d
in paste
inyecta un delimitador elegido
Si necesita que el resultado tenga espacios que rodeen el delimitador como |
, entonces puede agregar sed 's/|/ | /g'
para reemplazar todas las instancias de |
(sin espacios circundantes) con |
(con espacio circundante en cada lado)
paste -d '|' file1.txt file2.txt | sed 's/|/ | /g'
resultado:
teste | hello
teste2 | good
teste3 | bed
Por si acaso, si quieres un archivo separado por comas, entonces todo lo que tendrías que cambiar es
el -d '|'
a-d ','
que se vería así:
paste -d ',' file1.txt file2.txt