Meu arquivo PSV se parece com
Column1|Column2|Column3
Web_Value_in_file|123|OLA
Tab_Value_out_file|453|OLA
As colunas de origem e destino são diferentes. Quero cortar o valor da coluna1 para várias colunas no destino por _ delimitador. Quero que o arquivo de saída seja como no Excel (.xlsx)
Column1 Column2 Column3
Web In 123
Tab Out 453
Responder1
Eu acho que isto é o que você está procurando:
column -s '|' -t file
Supondo que não haja caracteres verticais incorporados em nenhum dos campos. Para análise de dados CSV genéricos, usecsvkit.
Responder2
Com uma versão adequadamente recente doMoleiro
$ ~/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
Com versões mais antigas do Miller, talvez você não consiga usar a capitalize
função - você pode usar letras minúsculas in
/ out
ou converter para letras maiúsculas IN
/ OUT
substituindo capitalize
por toupper
.