Bash脚本,复制具有特定名称

时间:2017-09-21 13:46:09

标签: bash file csv

我有一个大约4000张图片的文件夹,大约有800种不同的对象。

基本上所有特定对象的图片都以AR开头(此处为5位数代码) 并完成_1.jpg,_2.png,具体取决于有多少picutres

我基本上试图在具有以下格式的文件中记下所有这些内容 AR05477; /AR05477_1.png | /AR05477_2.png | /AR05477_3.jpg AR05478:/AR05478_1.jpg等

我尝试使用grep / ls(因为它们都在同一个文件夹中),使用我在google中找到的不同标志和选项并使用>导出输出,我已经接近使用printf,但我没有设法完全以这种形式得到它们,有人可以帮助我吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

find是一个很好的工具。试试

find . -regextype posix-extended -iregex '.*/AR[0-9]{5}_[0-9]+\.jpg'

现在用一些awk链接到你正在寻找的东西:

find . -regextype posix-extended -iregex './AR[0-9]{5}_[0-9]+\.jpg' \
| sed 's/\.\///' \
| awk -F"_"  '{ print $1,$0 }' \
| awk '{arr[$1]=(arr[$1]?arr[$1]";"$2:$1";"$2)} END { for (i in arr) print arr[i]}'