从 psv 文件复制到多列的 excel 文件

从 psv 文件复制到多列的 excel 文件

我的 PSV 文件看起来像

Column1|Column2|Column3
Web_Value_in_file|123|OLA
Tab_Value_out_file|453|OLA

源列和目标列不同。我想通过 _ 分隔符将值从第 1 列剪切到目标中的多个列。我希望输出文件像 excel(.xlsx) 中一样

Column1 Column2 Column3
Web     In      123
Tab     Out     453

答案1

我认为这就是您正在寻找的:

column -s '|' -t file

假设任何字段中都没有嵌入管道字符。要解析通用 CSV 数据,请使用csvkit

答案2

使用适当的最新版本磨坊主

$ ~/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

对于旧版本的 Miller,您可能无法使用该capitalize功能 - 您可以使用小写in/或通过替换为 来out转换为全部大写IN/ 。OUTcapitalizetoupper

相关内容