嗯,没有人?
你应该重定向“find”命令的输出,考虑switch -type d和-maxdepth,并且可能用sed解析它,用“spaces”替换“/”。也许通过“剪切”和“列-t”命令进行管道,而“排序”和“uniq”将会很有用。名称(FF和ID除外)包含空格或特殊字符,例如与参与者的姓名有关?
应该有可能得到一个TXT与“一班”和一些管道。
你应该尝试,和你的工作对这个:)
编辑后的结果:好吧,我为我创造了一个结构几千目录和子目录的参赛者编号,通过考试号等,看起来像这样(也许它与你有什么不一样,但不用担心)。研究编号从5到150,FF从45到75,日期从2012_01_00到2012_01_30 - 这使得总数非常庞大。
/Users/pwadas/bzz/data
/Users/pwadas/bzz/data/study_005
/Users/pwadas/bzz/data/study_005/05_Num
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_00
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_01
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_02
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_03
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_04
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_05
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_06
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_07
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_08
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_09
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_10
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_11
/Users/pwadas/bzz/data/study_005/05_Num/45_Exam/2012_01_12
现在,我想(报价) “每一个参与者线和下面的列txt文件:研究ID,FF_number,Exam_Number和日期。”
所以我用下面的一行代码:
find /Users/pwadas/bzz/data -type d | head -n 5000 |cut -d'/' -f5-7 | uniq |while read line; do echo -n "$line: " && ls -d /Users/pwadas/bzz/$line/*Exam/* | perl -0pe 's/.*2012/2012/g;s/\n/ /g' && echo ; done > out.txt
这里是输出(从out.txt了几首行)。线很长,我板缺它输出第一80-90个字符:
dtpwmbp:data pwadas$ cat out.txt |cut -c1-90
data:
data/study_005:
data/study_005/05_Num: 2012_01_00 2012_01_01 2012_01_02 2012_01_03 2012_01_04 2012_01_05 2
data/study_005/06_Num: 2012_01_00 2012_01_01 2012_01_02 2012_01_03 2012_01_04 2012_01_05 2
data/study_005/07_Num: 2012_01_00 2012_01_01 2012_01_02 2012_01_03 2012_01_04 2012_01_05 2
data/study_005/08_Num: 2012_01_00 2012_01_01 2012_01_02 2012_01_03 2012_01_04 2012_01_05 2
dtpwmbp:data pwadas$
我希望这将帮助你一点,你就可以根据自己的需要和模式来修改它,这似乎是我所能做的:)你应该分析一行,尤其是“cut”命令和perl-regex部分,它从“ls”输出中删除换行符和完整的目录名。这可能是最理想的,但美化不是重点,我猜: 所以,祝你好运:) PS。 “head”命令限制N条第一行的输出,您可能需要跳过 |头.. | 部分。