Дарнит ...
Лучшее, что я могу сделать, это:
echo a:b:c:d | perl -ne '$v=":";@F = split("$v"); $F[1] = 42; print join("$v", @F) . "\n";'
Вам не нужно -F:
таким образом, и вы только один раз указываете двоеточие,Я надеялся, что каким-то образом можно было установить переменные в командной строке, как вы можете с помощью переключателя Awk -v
.
Для одних строк Perl обычно не так чист, как Awk, но я помню, как использовал Awk, прежде чем я зналPerl и написание 1000+ строковых скриптов Awk.
Испытывая подобные вещи, люди думали, что Awk или назвали в честь звука, который кто-то издал, когда они пытались расшифровать такой сценарий, или стояли за AWKward.