Unix - 查找和printf只是文件名的一部分

时间:2018-03-13 10:38:09

标签: bash unix terminal

我有这个命令:

find <path> -mindepth 2 -type f -name '*_????????????.csv' -printf '\n%AD %AT %p' | sort -b -nr | cut -c 30-

结果:

Date, Time and Path

但我需要打印?中的内容(_.csv之间)。

1 个答案:

答案 0 :(得分:0)

让我们说你的文件夹结构如下:

ubuntu#  find ./  -type f -name '*.csv'
./file_12345.csv
./subfolder/moremore_hahahaha.csv
./45468_somefile.csv

在这种情况下,这样做:

find ./  -type f -name '*.csv' -exec basename {} \; | awk -F'[_.]' '{print $2}'

结果:

12345
hahahaha
somefile

根据OP的评论编辑:

find ./  -type f -name '*.csv'  -printf '\n%AD %AT %p' | awk '{ $4 = $3 ; sub(/[.]csv/,"",$3) ;sub(/.*_/," ",$3) ; print $1 " " $2 " " $4 " " $3}'

问候!