gpt4 book ai didi

linux - 如何使用深度级别 2 或 maxdepth 作为下面我的 bash 脚本的输出文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:38 25 4
gpt4 key购买 nike

我现在使用下面的 bash 脚本在每个 2 级深度目录中创建文件列表,并在每个特定文件夹中输出为文本文件。

但是,我只能将其命名为“File.txt”如何使用二级深度目录作为输出文本文件名

例如在列出/users/bin/中的文件时,输出文件应命名为“bin.txt”

这是我正在使用的代码。

#!/bin/bash

while IFS= read -r -d '' folder; do

echo $folder find "$folder" -type f > "$folder"/File.txt

done < <(find . -maxdepth 2 -mindepth 2 -type d -print0)

最佳答案

您必须考虑 (1) 当前工作目录中的文件(除了 '.' 之外没有路径组件),以及 (2) 关卡中的其余文件2 个目录。例如,如果您想将当前目录中的文件列表输出到 pwd.txt,并将 2 级目录中的每个文件输出到具有相应目录名称的文件(例如 ./dir1/file_a.txtdir1.txt),您可以在循环体中执行类似于以下内容的操作:

tmp="${folder%/*}"                        ## remove filename
lvl2name="${tmp##*/}" ## remove leading path components
[[ $lvl2name = '.' ]] && lvl2name="pwd" ## handle files in pwd to pwd.txt
echo $folder find "$folder" -type f >> "$lvl2name.txt"

在每次后续运行脚本之前截断任何现有的 "$lvl2name.txt" 文件由您决定。您可以先调用 find 。 -maxdepth 2 -type d ... 在您输入文件循环之前获取目录名称或类似内容。

试一试,如果您有任何问题,请告诉我。

关于linux - 如何使用深度级别 2 或 maxdepth 作为下面我的 bash 脚本的输出文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com