从文本文件中特定行的部分创建文件夹

用户名

我的父文件夹包括子文件夹。在每个子文件夹中,都有以下文件夹:

Parent_folder
folder1
  folder_01_PAP_515151
  folder_02_PAPA_554651
  folder_03_PAPX_541313
  folder_04_PAP_654123
folder2
  folder_20_PAP_413513
  folder_02_PAPD_521354
  folder_055_PAP_685413
  folder_100_PAP_132312
folder3
  folder_11_PAPE_5313351
  folder_32_PAP_3513131
  folder_53_PAP_3213321
  folder_84_PAP_3313213

..

我使用以下命令列出了所有包含“ PAP的文件夹和子文件夹,并将其保存在文本文件“ list.txt”中

find -type d -name "*_PAP_" > list.txt

输出如下:

  ./folder1/folder_01_PAP_515151
  ./folder1/folder_04_PAP_654123
  ./folder1/folder_20_PAP_413513
  ./folder2/folder_055_PAP_685413
  ./folder2/folder_100_PAP_132312
  ./folder3/folder_32_PAP_3513131
  ./folder3/folder_53_PAP_3213321
  ./folder3/folder_84_PAP_3313213

从这个列表中,我想创建一个新文件夹,这些新文件夹的名称必须包含“三个数字_PAP”部分,例如,上一个列表中的“ 055_PAP”,“ 32_PAP”,“ 53_PAP”...。新生成的文件夹的列表必须为:

 01_PAP
 04_PAP
 20_PAP
 055_PAP
 100_PAP
 32_PAP
 53_PAP
 84_PAP
ctrl-alt-delor

如果您有一个文件(名为,list包含以下内容),并且用来为文件中的每个行名创建一个目录,其中目录名仅位于./folder?/folder_之后

./folder1/folder_01_PAP_515151
./folder1/folder_04_PAP_654123
./folder2/folder_055_PAP_685413
./folder2/folder_100_PAP_132312
./folder3/folder_32_PAP_3513131
./folder3/folder_53_PAP_3213321
./folder3/folder_84_PAP_3313213

那你就可以做。

cat list | sed -r -e 's~[.]/folder[0-9]+/folder_~~' | xargs -I{} mkdir -p «prefix»{}

  • 我已经做到了,所以文件夹号是一个或多个数字。
  • 除非您需要前缀,否则将“前缀”留为空白。

如果您只想重命名原始文件夹/目录,并保留原始内容,则可以执行以下操作:

用这个测试。然后从重-n命名中删除,以实现它的真实效果。

find . -type d -name "*_PAP_" | rename -n 's~[.]/folder[0-9]+/folder_~~'

注意搜索模式是相同的rename,因为它是sedrename适用于文件名,sed适用于文件或流。

的选项sed

  • -r 使用扩展的正则表达式(要使用的正则方言)。
  • -e 下一个arg是表达式(sed程序)。
  • 's~[.]/folder[0-9]+/folder_~~' 用引号引起来的表达式,以便外壳程序不解释它。

表达式说明: s~[.]/folder[0-9]+/folder_~~

  • s 搜索并替换
  • ~分隔符将表达式分为几部分,您可以使用任何字符,但每次都必须使用相同的字符。s~«search_for»~«replace_with»~«options»或使用其他字符s@«search_for»@«replace_with»@«options»
  • «search_for»正则表达式:
    • [.] 一个点
    • /folder 正如它所说的那样。
    • [0-9] 一个数字。
    • + 一个或多个前面的原子(数字)(所以一个或多个数字)。
    • /folder_ 正如它所说的那样。
  • «replace_with»用什么替换,在这种情况下,什么也没有。
  • «option»在这种情况下,其他包括i忽略大小写,要g重复做一次以上(不仅是找到第一个字符串)。

sed/rename语言非常强大,但复杂。您将使用的主要部分s(如此处所用),也许接下来y是值得学习的部分。您还必须学习正则表达式(也由grep和其他命令使用)。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在特定目录中的文本文件中指定创建文件夹/子文件夹/文件

来自分类Dev

在python中从两个不同的文件夹创建文本文件

来自分类Dev

未在 Swift 的 applicationSupport 文件夹中创建文本文件

来自分类Dev

自动创建文件夹内容的文本文件

来自分类Dev

如何在 .NET 项目文件夹中创建文本文件,而不是在默认情况下的 bin/Debug 文件夹中

来自分类Dev

从部分名称在文本文件中的文件夹中选择 wav 文件

来自分类Dev

在文件夹内创建文本文件,然后重命名文件夹以匹配其中的文件名

来自分类Dev

如何创建多个文件夹并通过从文本文件中读取行来命名它们?

来自分类Dev

为文件夹中的文本文件编号

来自分类Dev

使用文件夹名称在所有文件夹中创建空文本文件

来自分类Dev

创建文本文件

来自分类Dev

使用SQL在Oracle中创建文本文件

来自分类Dev

在C#中创建文本文件

来自分类Dev

在可执行JAR中创建文本文件

来自分类Dev

从列表中的每个链接创建文本文件?

来自分类Dev

如何在子文件夹中搜索特定的文本文件

来自分类Dev

在特定文件夹中创建文件

来自分类Dev

使用find命令从子文件夹中的文本文件中提取行

来自分类Dev

PHP创建文本文件-创建文本文件很困难

来自分类Dev

如何从具有相同名称的文本文件创建文件夹和文件,以插入具有相应名称的文件?

来自分类Dev

在文件夹中创建文件

来自分类Dev

为表中的特定项目创建文件夹

来自分类Dev

我需要在特定日期创建的所有子文件夹中找到所有文本文件,将其打开,然后将内容复制到单个文本文件中

来自分类Dev

从文本文件复制特定行以创建新行

来自分类Dev

从文本文件列表创建文件

来自分类Dev

批处理文件文件夹和文本文件的创建

来自分类Dev

在laravel中创建文件夹

来自分类Dev

在Swift中创建文件夹

来自分类Dev

在Kotlin中创建文件夹

Related 相关文章

  1. 1

    在特定目录中的文本文件中指定创建文件夹/子文件夹/文件

  2. 2

    在python中从两个不同的文件夹创建文本文件

  3. 3

    未在 Swift 的 applicationSupport 文件夹中创建文本文件

  4. 4

    自动创建文件夹内容的文本文件

  5. 5

    如何在 .NET 项目文件夹中创建文本文件,而不是在默认情况下的 bin/Debug 文件夹中

  6. 6

    从部分名称在文本文件中的文件夹中选择 wav 文件

  7. 7

    在文件夹内创建文本文件,然后重命名文件夹以匹配其中的文件名

  8. 8

    如何创建多个文件夹并通过从文本文件中读取行来命名它们?

  9. 9

    为文件夹中的文本文件编号

  10. 10

    使用文件夹名称在所有文件夹中创建空文本文件

  11. 11

    创建文本文件

  12. 12

    使用SQL在Oracle中创建文本文件

  13. 13

    在C#中创建文本文件

  14. 14

    在可执行JAR中创建文本文件

  15. 15

    从列表中的每个链接创建文本文件?

  16. 16

    如何在子文件夹中搜索特定的文本文件

  17. 17

    在特定文件夹中创建文件

  18. 18

    使用find命令从子文件夹中的文本文件中提取行

  19. 19

    PHP创建文本文件-创建文本文件很困难

  20. 20

    如何从具有相同名称的文本文件创建文件夹和文件,以插入具有相应名称的文件?

  21. 21

    在文件夹中创建文件

  22. 22

    为表中的特定项目创建文件夹

  23. 23

    我需要在特定日期创建的所有子文件夹中找到所有文本文件,将其打开,然后将内容复制到单个文本文件中

  24. 24

    从文本文件复制特定行以创建新行

  25. 25

    从文本文件列表创建文件

  26. 26

    批处理文件文件夹和文本文件的创建

  27. 27

    在laravel中创建文件夹

  28. 28

    在Swift中创建文件夹

  29. 29

    在Kotlin中创建文件夹

热门标签

归档