Функция автоматического разделения Perl с редактированием на месте - PullRequest
3 голосов
/ 17 февраля 2011

У меня только что была задача, в которой мне нужно было заменить каждое 3-е значение в файле, разделенном табулятором, на фиксированное значение. Я думаю, это можно сделать в Perl на оболочке Unix, например,

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

Я просто хотел узнать, является ли это "правильным" способом, или есть ли лучший (для определения, в котором нет лучшего), чтобы это сделать?

1 Ответ

3 голосов
/ 17 февраля 2011

Я думаю, что ваша строка понятна и понятна.Есть еще много способов сделать это.Я бы сложил параметры perlrun и сохранил несколько нажатий клавиш:

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

Позор, что $, не заполняется аргументом -F, так что все еще есть фрагмент повторения.

...