Perl 的自动分割功能和就地编辑
我刚刚完成一项任务,需要将制表符分隔文件中的每个第三个值替换为固定值。我想它可以在 Unix shell 上用 Perl 完成,所以
$perl -a -n -i -F'/\t/' -e '$F[2]="THE FIXED VALUE";print join "\t", @F' bla.txt
我只是想知道这是否是“正确”的方法,或者是否有更好的方法(对于目前缺乏更好的定义)来做到这一点?
I just had a task in where I needed to replace each 3rd value in a tabulator separated file with a fixed value. I guess it can be done in Perl on a Unix shell like so
$perl -a -n -i -F'/\t/' -e '$F[2]="THE FIXED VALUE";print join "\t", @F' bla.txt
I just wanted to know if this is a "correct" way, or if there is a better (for a currently lacking definition of better) to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为你的一句话是合理且可读的。还有很多方法可以做到这一点。我会堆叠 perlrun 选项并节省一些击键:
遗憾的是
$,
没有使用-F
参数填充,因此仍然存在重复。I think your one-liner is reasonable and readable. There are many more ways to do it. I would stack the perlrun options and save a few keystrokes:
A shame that
$,
does not get populated with the argument of-F
, so there's still a piece of repetition.