首页 > 解决方案 > 在 CSV 文件中,我想从 UNIX 文件的第 3 列的 10 个字符中删除前 5 个字符

问题描述

输入文件内容

abcde,12345,fedefg12345,aaaaaaa  
abcde,12785,feeefg12345,aaaaaaa  
abcde,12845,fezefg12345,aaaaaaa  
abcde,12995,femefg12345,aaaaaaa   

在 CSV 文件中,我想从 UNIX 文件的第 3 列的 10 个字符中删除前 5 个字符。注意: - 更改应反映在文件本身中。

预期输出:-

abcde,12345,12345,aaaaaaa  
abcde,12785,12345,aaaaaaa  
abcde,12845,12345,aaaaaaa  
abcde,12995,12345,aaaaaaa  

标签: linuxunix

解决方案


使用 Perl 和Text::CSV_XS很容易:

perl -MText::CSV_XS=csv -we 'csv(in    => shift,
                                 on_in => sub { substr $_[1][2], 0, 6, "" }
                             )' -- file.csv

另请参见substr


推荐阅读