Являются ли параметры командной строки ruby autoparse ('a') и print ('p') несовместимыми?
Когда используешь ruby
лайк awk
для анализа столбца из входного потока, разделенного пробелами:
aws s3 ls aws s3 ls s3://<my path>/ | ruby -ane 'puts $F[2]'
Который правильно возвращает третье поле (aws file size
) в каждой строке:
369982301
371599031
369002912
Это то, что желательно. Мне интересно, почему мы не можем объединить ape
и опустить puts
?
aws s3 ls aws s3 ls s3://<my path>/ | ruby -ape '$F[2]'
Который вместо этого в основном ничего не делает - просто возвращает целые строки:
019-02-05 20:42:24 370485927 part-00314-01a30316-a576-4cd1-848b-12d5211ac8bc-c000.snappy.parquet
2019-02-05 20:42:24 370449245 part-00315-01a30316-a576-4cd1-848b-12d5211ac8bc-c000.snappy.parquet
2019-02-05 20:42:22 371043796 part-00316-01a30316-a576-4cd1-848b-12d5211ac8bc-c000.snappy.parquet
2019-02-05 20:42:25 369559577 part-00317-01a30316-a576-4cd1-848b-12d5211ac8bc-c000.snappy.parquet
2019-02-05 20:42:27 371956548 part-00318-01a30316-a576-4cd1-848b-12d5211ac8bc-c000.snappy.parquet
Являются -a
а также -p
либо несовместимы, либо, по крайней мере, имеют неочевидное взаимодействие?