解决 sed 中字符的特定出现位置
如何删除或解决 sed 中特定出现的字符?
我正在编辑 CSV 文件,并且想要删除第三次和第五次出现的逗号之间的所有文本(即删除字段四和字段五)。有没有办法使用 sed 来实现这一点?
例如:
% cat myfile
one,two,three,dropthis,dropthat,six,...
% sed -i 's/someregex//' myfile
% cat myfile
one,two,three,,six,...
How do I remove or address a specific occurrence of a character in sed?
I'm editing a CSV file and I want to remove all text between the third and the fifth occurrence of the comma (that is, dropping fields four and five) . Is there any way to achieve this using sed?
E.g:
% cat myfile
one,two,three,dropthis,dropthat,six,...
% sed -i 's/someregex//' myfile
% cat myfile
one,two,three,,six,...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果可以考虑
cut
命令,那么:If it is okay to consider
cut
command then:awk
或任何其他能够在分隔符上分割字符串的工具比sed
Ruby(1.9+)更适合这项工作使用 awk 的
awk
or any other tools that are able to split strings on delimiters are better for the job thansed
Ruby(1.9+)
using awk
实际的解析器
但请注意csv 模块的前言:
A real parser in action
But do note the preface to the csv module: