我需要一个 bash 脚本来递归地打印文件夹名称和文件名(在 stdo/p 中)。例如:我有一个像 /earth/plants/flowers/rose/rose.jpg 这样的文件夹结构。
/earth/plant/fruits/apple/apple.jpg.
/earth/animals/carni/lions.jpg
/earth/animals/herbi/omni/dog.jpg
现在我需要像这样列出这些文件和文件夹,我的意思是我的 O/P 脚本应该是,
planet=earth
category=animal (plant)
sub cat = carni
name = lion.jpg.
我试过了
`find / -name "*" -print | awk -F"/" '{ print "\n planet=",$2,"\n category=",$3,"\n sub cat=",$4,"\n Name=",$5, $6 }'`
上面的命令给了我下面的 O/P。
planet=earth
category=animal (plant)
sub cat = carni
name = lion.jpg
但是在某些情况下,我还有其他文件夹,例如“ /earth/animals/herbi/omni/rabbit.jpg
”,在这种情况下,输出顺序会发生变化,例如:
planet=earth
category=animal
sub cat = herbi
name = omni
rabbit.jpg
所以我需要在几个地方列出额外的子猫。喜欢
planet=earth
category=animals
sub cat = herbi
add cat = omni
name = rabbit.jpg
所以如何用一个脚本来做到这一点。除了 awk 之外的脚本也是受欢迎的。
`find / -name "*" -print | awk -F"/" '{ print "\n planet=",$2,"\n category=",$3,"\n sub cat=",$4,"\n Name=",$5,$6}``
在这种情况下,5 美元中的任何内容将仅打印为名称。所以需要这样的东西。
``find / -name "*" -print | awk -F"/" '{ print "\n planet=",$2,"\n category=",$3,"\n sub cat=",$4,"\n add cat =",$5,(if $5 = foldername print "add cat = omni") name = $6 }'"``.
谢谢,维杰