根据文件名中的数字移动文件

时间:2016-05-28 00:31:51

标签: shell variables grep mv

我正在尝试根据名称中的数字移动文件夹中的文件。 文件是capture_%Y-%m-%d_%H:%M:%S.pcap这样的名称我想像fooNNN_bar.txt

那样组织它们

这就是我现在所拥有的。它会打印出每个文件必须移动到的文件夹。我不知道如何收集数字以将其添加到mv命令中。这甚至是正确的方法吗?

/NNN/fooNNN_bar.txt

1 个答案:

答案 0 :(得分:2)

假设你的grep按你的意愿工作:

#!/bin/bash
  for filename in foo*.txt; do 
      num=$(echo "${filename}" | grep -Eo '[0-9]{1,4}')
      mkdir -p "$num"
      mv "$filename" "$num"
done