linux - 在 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
解决方案
使用 Perl 和Text::CSV_XS很容易:
perl -MText::CSV_XS=csv -we 'csv(in => shift,
on_in => sub { substr $_[1][2], 0, 6, "" }
)' -- file.csv
另请参见substr。
推荐阅读
- reactjs - ReactJS、Axios、.NET Core 5.0 WebAPI -- 401 未经授权
- python-3.x - 如果它以问号开头,Python urljoin 不能正确连接字符串
- nuget - Itext7 和 SelectPdf nuget 包
- javascript - 按字符串数组选择类型
- android - Android Studio 在共享测试目录中显示未解析的引用,但执行任务按预期工作
- bash - Bash 运行两个命令都依赖于第一个
- docker - Docker build 在另一个目标下执行指令(多阶段)
- authentication - 错误:无法找到或加载主类 org.apache.zookeeper.server.auth.DigestAuthenticationProvider
- ms-word - 无法在 Scriptlab 中使用 domparser 将 ooxml 字符串解析为 xml 对象
- r - 混淆矩阵数据