读入非标准数据结构,Linux文件列表

时间:2015-09-08 19:06:05

标签: linux parsing sas

我正在尝试将Linux目录列表解析为干净的平面文件。下面列出了数据的一个子集。

./DIRECTORY1/SUBDIR1:
total 5
drwxrwx---  2 user1 group1  2048 Sep  8 13:40 .
drwxrws--- 13 user2 group1  2048 Sep  8 17:00 ..
-rwxrwx---  1 user1 group1 56362 Dec 18  2014 file12112012.csv
-rwxrwx---  1 user1 group1 65233 Dec 18  2014 file12112013.csv
-rwxrwx---  1 user1 group1 66322 Dec 22  2014 file20140902.csv
-rwxrwx---  1 user1 group1 65443 Dec 22  2014 file20140918.csv
-rwxrwx---  1 user1 group1 64003 Dec 22  2014 file20141016.csv

./DIRECTORY1/SUBDIR2:
total 5
-rw-r--r--  1 user1 group1     133 Jun 25 16:05 test.sas
-rwxrwx---  1 user1 group1     338 Sep 19  2014 threads.sas
-rwxrwx---  1 user1 group1    5997 Apr  8 16:05 comparison.sas
-rwxrwx---  1 user1 group1 5341617 May  6 20:02 univariate.pdf
-rwxrwx---  1 user1 group1     814 Jan 30  2015 avg_fix.sas

./DIRECTORY2:
total 44
drwxrwx---  8 user1 group1 3864 May 20  2014 .
drwxrws--- 13 user2 group1 2048 Sep  8 17:00 ..
drwxrwx---  2 user1 group1 3864 May 20  2014 DataSources
drwxrwx---  2 user1 group1 3864 May 20  2014 HPDM
drwxrwx---  2 user1 group1 3864 May 20  2014 Meta
drwxrwx---  2 user1 group1 3864 May 20  2014 Reports
drwxrwx---  2 user1 group1 3864 May 20  2014 System
drwxrwx---  2 user1 group1 3864 May 20  2014 Workspaces
-rwxrwx---  1 user1 group1   83 May 20  2014 project.emp

理想情况下,我希望输出数据看起来像:

filename                               user  group   size  date
./DIRECTORY1/SUBDIR1/file12112012.csv  user1 group1 56362  12/18/2014
./DIRECTORY1/SUBDIR1/file12112013.csv  user1 group1 65233  12/18/2014
..etc..

我不能忽视"标题"部分,因为它包含文件名的开头,但非标题行是我希望标准输入数据步骤能够处理的相对标准。

有没有办法按线路特性控制输入?有没有人有过像这样的文件阅读的经验?

作为参考,可以使用

在Linux环境中创建文件
ll -R

1 个答案:

答案 0 :(得分:2)

我建议不要使用ls 相反,请使用find。它有-printf选项,可让您格式化并显示有关找到的文件的某些信息。

例如:

find /path/to/folder -type f -printf "%p\t%g\t%s\n"

将打印由标签分隔的每个找到的文件的名称,组和大小。

有关其他信息,请参阅find的手册页。