如何在每个子目录中创建一个文本文件,以便该文本文件包含目录名称

程序员

我有5个空目录:

[X]$ ls
dir_1  dir_2  dir_3  dir_4  dir_5

如何在每个目录中创建一个文本文件,以便该文本文件包含其所在目录的名称?因此,例如,dir_1将包含文本文件,file_1.txt并且此文本文件dir_1dir_2包含文本包含包含文本的文本文件file_2.txtdir_2依此类推。

我搜索了信息,但无法弄清楚。我最近开始学习linux。我是否必须做类似的事情:

find . -type d -exec touch (something?)

是否可以通过for循环来做到这一点?

卡西莫多
for d in dir_*; do
    printf "%s\n" "$d" > "$d/file_${d##*_}.txt"
done
  • $d 扩展到每个目录名称。
  • ${d##*_}扩展到目录名称中的尾随数字,因为它会删除直到最后一个下划线的所有内容$dBASH手册POSIX规范的“参数扩展”部分中了解更多信息
  • printf "%s\n" "$d" > "$d/file_${d##*_}.txt" 将目录名称写入该目录中的txt文件。

单线:

for d in dir_*; do printf "%s\n" "$d" > "$d/file_${d##*_}.txt"; done

我赞成这样做printfecho因为在某些特殊情况下,前者可以正确处理,但后者不能正确处理,尽管在特定情况下echo不会出现问题。为什么printf比echo更好的内容中找到更多信息


如果您需要避免也以开头的非目录dir_,则选项1是在上面的脚本中的语句[ -d "$d" ] &&之前添加测试printf选择2是为了dir_*/只匹配目录:

for d in dir_*/; do
    dirn=${d%%/}
    printf "%s\n" "$dirn" > "${d}file_${dirn##*_}.txt"
done

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将每个子目录中文件的名称收集到该子目录中的文本文件中?

如何在Cmd的子目录中创建或更改文本文件?

创建单独的文本文件以列出每个目录和子目录中的内容

迭代子目录中的文本文件

从文本文件中读取行并为每行中的每个名称创建一个文本文件

如何递归压缩仅包含文本文件的所有子目录

Shell命令在所有子目录中创建文本文件

从子目录打开文本文件

如何在文本文件中提取不同的数据子集并将每个子集传递到另一个文本文件中?

如何合并所有子目录中具有相同名称的文本文件?

如何将所有目录名称写出到文本文件中

Python在带有子目录的目录中搜索文本文件

我如何读取一个文本文件,该文件在php中包含适当的数组?

如何在目录的每个文本文件上运行命令并删除每个文本文件?

如何创建一个包含文本文件中的键值对的字典

从文本文件创建目录

如何在包含多个点的文本文件中搜索一个点?

mac:在许多目录中串联文本文件的内容;将目录名称附加到相应的文本文件内容

如何在makefile中创建一个包含文本文件名和时间戳的变量?

如何在上次编辑目录中的文件时创建日期的文本文件

如何从一个文本文件中提取行,该文本文件包含另一个文件中的列表中的字符串?

如何从路径中查找所有文本文件并将该文本文件中的所有行组合到一个文本文件中

如何将目录中的所有文本文件转换为一个csv

合并所有子目录中具有相同名称的文本文件,并保留其他文件(删除重复的行)

获取目录名称并将其写入文本文件

使用sed命令用目录名称替换文本文件

如何从iOS中的文档目录复制文本文件

如何从文本文件中提取行,该文本文件包含按搜索列表顺序排列的另一个文件中的列表的字符串?

如何循环文本文件目录并在PHP中回显每个文件的wordcount?