ls | perl -anle 'print $F[0]' -> file1\nfile2\nfile3\n ...
Это печатает все файлы ls
. Но это не должно. Я хочу получить доступ к ar @F
, а ls
дает файл, разделенный пробелом, поэтому каждый файл должен быть одним элементом @F
, в соответствии с этим:
-a turns on autosplit mode when used with a -n or -p. An implicit
split command to the @F array is done as the first thing inside the
implicit while loop produced by the -n or -p.
Так что я бы хотел доступ только к первому элементу, потому что если я изменю на $F[1]
в операторе печати, то никакого вывода не произойдет. Я ожидал бы file2
. Как тогда работает -a
? (да, я прочитал документацию)
Редактировать: Если я использую l
, то после конвейера вывод не будет разделен на "\n"
, поэтому я могу выполнить предыдущую команду с перечислением l
.