perl inline:autosplit不会将ls命令分割为@F数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl inline:autosplit不会将ls命令分割为@F数组相关的知识,希望对你有一定的参考价值。
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.
所以我只想访问第一个元素,因为如果我在print语句中更改为
$F[1]
,则不会输出。我希望file2
。那么-a
如何工作? (是的,我已阅读文档)
编辑:如果我使用l
,则在管道之后,输出将不会与"\n"
分开,因此我可以使用l
清单执行先前的命令。
ls | perl -anle'print $ F [0]'-> file1 \ nfile2 \ nfile3 \ n ...这将打印ls的所有文件。但是不应该。我想访问ar @F,而ls给出了文件,文件之间用空格隔开,因此每个文件应为...
答案
ls
的输出不是用空格分隔,而是当ls
未连接到tty时用换行符分隔。
另一答案
ls
的输出发送到终端以外的地方时,不是用空格隔开,而是用换行符隔开(好像使用了-1
。
以上是关于perl inline:autosplit不会将ls命令分割为@F数组的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 VC++ 6.0 编译的应用程序中嵌入 Strawberry Perl 或在编译器不匹配的情况下使用 Inline::C 吗?