我目录中的文件很少。我需要在bash脚本中显示列:
目录/ reports /中的文件:
ctime - filename - 1st line text
I've found the perfect soluton here
#!/bin/sh
MYPATH=/
TOTALFILE=$(ls $MYPATH/* | wc -l)
FILE=$(ls -1tcr $MYPATH/* | head -5 | rev | cut -d/ -f1 | rev)
declare -a FILES
declare -a FILETIME
OUTPUT="FILENAME CREATED TIME ERROR_HEADER\n\n------------------------------ ----------------------------- ----------------------------------- ------$
for i in $MYPATH/*;
do
FILES[${#FILES[@]}]="$i"
FILETIME[${#FILETIME[@]}]=$(stat --format=%y $i | head -5 | cut -d'.' -f1)
TOPLINE=$(head -1 $i | grep -Po '".*?"' | head -5)
OUTPUT="$OUTPUT\n${FILES[${#FILES[@]}-1]} ${FILETIME[${#FILETIME[@]}-1]} $TOPLINE\n"
done
echo -ne $OUTPUT | column -t
答案 0 :(得分:2)
find . -type f -printf '%a %p ' -exec head -n1 {} \;
见
man find
听起来像家庭作业。对 ? =)
答案 1 :(得分:2)
find /reports -type f | xargs ls -lt
这是按创建时间排序的,因此最新的文件位于顶部
如果您只想要一个结果,则可以在head -n 1 or head -1
的命令后添加|
希望有所帮助。