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数组的主要内容,如果未能解决你的问题,请参考以下文章

perl实现awk的功能

我可以在 VC++ 6.0 编译的应用程序中嵌入 Strawberry Perl 或在编译器不匹配的情况下使用 Inline::C 吗?

如何使用 Perl 将输入通过管道传输到 Java 应用程序?

Inline::C 构建失败

是否可以将 perl6 嵌入到 C(或 C++)程序中?

511,display:inline-block什么时候不会显示间隙?