Perl的autosplit功能,具有就地编辑功能

时间:2011-02-17 16:30:59

标签: perl inplace-editing

我只需要一个任务,我需要用固定值替换制表符分隔文件中的每个第3个值。我想它可以在Unix shell上的Perl中完成,如此

$perl -a -n -i  -F'/\t/' -e '$F[2]="THE FIXED VALUE";print join "\t", @F' bla.txt

我只是想知道这是否是一种“正确”的方式,或者是否有更好的方法(目前缺乏更好的定义)?

1 个答案:

答案 0 :(得分:3)

我认为你的单行是合理的,可读的。还有很多方法可以做到这一点。我会堆叠perlrun选项并保存一些按键:

perl -F'\t' -i -ape'$F[2]="THE FIXED VALUE"; $_ = join "\t", @F' bla.txt

遗憾的是$,没有填充-F的参数,所以仍有一段重复。