将多个文件移动到具有相同名称的不同文件夹

Miro Feliciano Dring dos Santo

我有几个车站的一些数据,这些数据是根据它们所在的车站以及它们被记录的日期而分开的,因此对于车站 1,例如,我有多个名为2019.001,2019.002etc. 的文件夹,在这些文件夹中我有文件(全部带有同名)以 HHZ 结尾。我所做的是从每个电台获取这些文件并将它们放在另一个文件夹中,同时将它们重命名为具有上面文件夹的名称并保持电台的名称,然后我创建了与它们的名称相对应的文件夹。我的实际问题是如何移动与同一天对应的文件,例如2019.001.station12019.001.station2文件夹2019.001.

dir0=`pwd`
mkdir -p data || exit 1
for pathname in $dir0/stam/*/*HHZ; do
    cp "$pathname" "data/$( basename "$( dirname "$pathname" )" )STAMHHZ"
done

for pathname in $dir0/macu/*/*HHZ; do
    cp "$pathname" "data/$( basename "$( dirname "$pathname" )" )MACUHHZ"
done


cd $dir0/data
mkdir 2019.0{10..31}
mkdir 2019.00{1..9}

如果还有另一种方式来执行我获取文件的代码部分,那么我可以概括为几个站点会很好,因为我现在只使用两个站点,但将来我将使用更多站点.

这是数据所在的树

macu
├── 2019.001
│   └── MACUHHZ
├── 2019.002
│   └── MACUHHZ
├── 2019.003

stam
├── 2019.001
│   └── STAMHHZ
├── 2019.002
│   └── STAMHHZ
├── 2019.003
│   └── STAMHHZ

所以理想情况下,最终情况是:

data
├── 2019.001
│   ├── 2019.001MACUHHZ
│   └── 2019.001STAMHHZ

等等

托亚拉

下面的脚本创建所需的文件结构。您要从中复制数据的顶级目录(在您的示例macu和 中stam)应添加到top_dir变量中。您还可以将其更改为使用通配符,或从文件中读取它们等。

基本思路很简单:对于每个顶级目录,对于每个数据目录,在.中创建对应的目录data,对于每个文件,复制文件。

pushd并被popd用作一个简单的技巧来使*通配符做我们想要的。$dir0包含操作的根文件夹,所以我们总是知道在哪里data

set -e 用于在出现错误时立即退出。

#!/bin/bash
set -e

top_dirs=( macu stam )

dir0="$(pwd)"

mkdir -p data

for dir in "${top_dirs[@]}" ; do
    pushd "$dir" >/dev/null

    for datadir in * ; do
        mkdir -p "$dir0/data/$datadir"
        pushd "$datadir" >/dev/null

        for file in *HHZ ; do
            cp "$file" "$dir0/data/$datadir/$datadir$file"
        done

        popd >/dev/null
    done

    popd >/dev/null
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将所有文件夹和文件移动到目录Linux中具有相同主题名称的文件夹

资产目录:访问不同文件夹中具有相同名称的图像

将包含字符串的文件移动到与原始文件具有相同名称的子文件夹(PowerShell)

具有不同文件夹名称的mongodump

在不同文件夹中使用相同名称重命名文件

将具有相同名称的多个文件移动到以文件路径命名的新文件夹中

pentaho勺子/ pid:如何每次都将文件移动到具有不同名称的文件夹中?

将多个具有确切名称的文件夹移动到其自己的父文件夹

将多个zip文件解压缩到具有特定名称的不同文件夹中

Powershell脚本可移动具有相同名称的不同文件类型以共享文件夹

检查JQUERY的同一文件夹中是否存在1个或多个具有相同名称但具有不同扩展名的文件

将一些具有相同名称的文件绑定到R中的不同文件夹中

具有相同名称但文件夹不同的Windows Phone类

批处理命令将png文件移动到文件夹中具有相同名称的文件和文件夹

如何将文件移动到具有相同名称的相应文件夹中?

列出具有相同名称的不同文件夹下的所有文件

将文件从一个文件夹移动到另一个具有相同名称的文件夹

删除不同子目录中具有相同名称的文件夹的内容

根据部分文件夹名称将多个pdf移动到多个文件夹

msbuild复制具有相同文件夹名称的整个文件夹

将不同文件夹中具有相同名称的文件移动到一个文件夹中

Bash:如何将具有相同名称的多个文件复制到多个文件夹

从bash-scipt中具有相同文件名的不同文件夹中加载多个文件

合并不同文件夹中具有相同名称的文件

添加到 PATH 的 2 个文件夹包含具有相同名称的不同文件

将文件移动到具有几乎相同模式的特定文件夹中

如何创建具有相同文件名但具有不同文件扩展名的多个文件的 zip 文件夹

Python:如何将具有特定名称的文件移动到具有相同名称的文件夹

将文件从单个文件夹移动到具有文件名等名称的现有文件夹