gpt4 book ai didi

linux - 如何使用 sed 转换不均匀的制表符分隔文件?

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:54 24 4
gpt4 key购买 nike

如何使用 sed 命令将不均匀的 TAB 分隔输入文件转换为 CSV 或 PSV?

28828082-1      04/08/19 08:48  04/11/19 12:37  04/12/19 16:22  4/15-4/16       04/17/19        2       9       LCO     W                       OIP     04/08/19 08:53 21       1       58.00           9       222     79      FEDX    FEDXH   SL3     484657064673    0410099900691041119             SMITHFIELD      RI      02917   "41.890066 , -71.548680"        YES

上面是 1 行,我尝试使用 sed -r 's/^\s+//;s/\s+/|/g' 但结果不符合预期。

最佳答案

gawk来救援!

$ awk -vFPAT='([^[:space:]]+)|("[^"]+")' -v OFS='|' '$1=$1' file

28828082-1|04/08/19|08:48|04/11/19|12:37|04/12/19|16:22|4/15-4/16|04/17/19|2|9|LCO|W|OIP|04/08/19|08:53|21|1|58.00|9|222|79|FEDX|FEDXH|SL3|484657064673|0410099900691041119|SMITHFIELD|RI|02917|"41.890066 , -71.548680"|YES

将字段模式定义为非空格或带引号的值,其中可能包含空格(但不包含转义引号),替换用制表符分隔的输出字段,强制解析行,并且在格式更改后将打印非零行。

更好的版本是 ... '{$1=$1;打印}'

当然,如果所有字段分隔符都是制表符并且引号字符串不包含任何制表符,那就简单多了。

关于linux - 如何使用 sed 转换不均匀的制表符分隔文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55934724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com