-1

我一直在尝试这样做,并且我知道我做错了,但是如果有人可以提供指针帮助,我将不胜感激。我正在尝试做的是从文本文件管道中获取文件名列表,通过 for 循环将它们传递给 stat,然后让 perl 将这些行解析为如下所示的列:

列表包含:

/home/hack/public_html/.htaccess
/home/hack/public_html/index.php
/home/hack/public_html/list

我知道这可以完全在 perl 中完成,但我明确需要将输出通过管道传输到 perl,如下所示:

for i in $(cat list); do stat $i | perl -wnl -e '@file=split /File:/ print @file;';done 

理想情况下,我想像这样从 stat 中获取输出:

File: `.htaccess'
Size: 177           Blocks: 8          IO Block: 4096   regular file
Device: 5dh/93d Inode: 159909615   Links: 1
Access: (0644/-rw-r--r--)  Uid: (  503/    hack)   Gid: (  503/    hack)
Access: 2013-02-24 15:09:41.000000000 -0600
Modify: 2013-02-10 14:24:04.000000000 -0600
Change: 2013-02-24 15:09:42.000000000 -0600

但我只需要按列顺序排列的以下内容:

File: (the filename) Modify:(dates) Change:(dates) IO Block: (number)

我究竟做错了什么?

4

1 回答 1

0

这里@file包含来自给定文件的数据。现在,您可以通过或来处理@file和搜索所需的数据grep,将 grepped 数据存储在一些变量中,并以您想要的任何顺序打印这些变量。splitpattern matching

于 2013-03-04T07:42:19.993 回答