我需要创建包含如下数据的文件夹。
该文件夹应根据第 1 列进行唯一命名,例如。A、B、C、D 每个文件夹的内容应为第 2 列中对应的值
另外我还想要每个文件夹中的条目总数
例如。名为“B”的文件夹应将“B、B1 和 B2”作为不同的行数“3”作为文件夹“B”中最后一行的总数
数据看起来像:
col1 col2
A A
B B
B B1
B B2
C C1
C C2
C C3
D D1
D D2
我不确定“文件夹的内容”是什么意思 - 这些内容是目录还是某种文件?如果目录可以很容易地完成:
这表示一次将两个参数从输入文件(
/tmp/input.txt
在我的示例中)发送到简单的 bash 脚本mkdir -p $0/$1
。这里,mkdir -p
表示递归地创建一个目录,其中第一个参数 ($0
) 位于顶层,第二个参数位于第一个 ($1
) 下方。如果你想创建文件而不是目录,你可以将其更改为如下所示:
echo
您可以通过在命令中插入来查看发生了什么:请注意,仍然需要“
-p
”标志,以便在目录已存在时不会失败。mkdir
mkdir
假设这是一个简单的 tsv 文件,带有 zsh:
(未经测试)
请注意,如果您有:
例如,它不会检测到每次“创建”的是同一个文件。
首先绘制一个满足条件的表格,即每行的第一项为文件名,该行的其余部分为内容。这可以通过 awk 命令轻松完成:
(q763074 是您的示例输入)
现在将该输出通过管道传输到此循环中,您就完成了: