Mi archivo PSV se parece
Column1|Column2|Column3
Web_Value_in_file|123|OLA
Tab_Value_out_file|453|OLA
Las columnas de origen y destino son diferentes. Quiero cortar el valor de la columna 1 a varias columnas en el destino mediante _ delimitador. Quiero que el archivo de salida sea como Excel (.xlsx)
Column1 Column2 Column3
Web In 123
Tab Out 453
Respuesta1
Creo que esto es lo que estás buscando:
column -s '|' -t file
Suponiendo que no haya caracteres de barra vertical incrustados en ninguno de los campos. Para analizar datos CSV genéricos, utilicecsvkit.
Respuesta2
Con una versión adecuadamente reciente deMolinero
$ ~/src/miller/c/mlr --csvlite --ifs '|' --ofs tab put '
x = splitnv($Column1,"_"); $Column3 = $Column2; $Column2 = capitalize(x[3]); $Column1 = x[1]
' then cat file.psv
Column1 Column2 Column3
Web In 123
Tab Out 453
Con versiones anteriores de Miller, es posible que no pueda utilizar la función; puede vivir con / capitalize
en minúsculas o convertir a mayúsculas / reemplazando con .in
out
IN
OUT
capitalize
toupper