需要bash脚本中的帮助吗

需要bash脚本中的帮助吗,bash,shell,Bash,Shell,可能重复: 我需要一个bash脚本来递归打印目录名和文件名。例如:我的目录结构如下: /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 (pla

可能重复:

我需要一个bash脚本来递归打印目录名和文件名。例如:我的目录结构如下:

/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.
在某些地方,我还有其他目录,比如
/earth/anives/carni/jungle/lions.jpg


然后我还需要显示
lions.jpg
文件大小。

这可能会让您部分了解

find /earth | sed -e 's/\// /' | awk '{ print "planet = " $1 "\ncategory = " $2 "\nsubcat = " $3 "\nname = " $4}'
我将把它拆开,以便其他人可以改进/修改

find /earth
find只是转储/earth目录中所有内容的列表

sed -e 's/\// /'
我将所有的前斜杠替换为空格字符,这样我就可以轻松地拆分单词。我可以告诉awk使用正斜杠作为分隔符,而不用这一步,但这可能(也可能不会)对将来的修订有用,所以我就不做了

awk '{ print .... }'
我告诉awk打印问题中列出的各种类别的输入$1表示第一个令牌$2第二个令牌,依此类推。awk也理解换行符“\n”


我不知道如果你有几个子类别该怎么办,但是这应该让你接近

没有明显的方法可以从
/earth/animals/…
获得“动物”;没有明显的方法可以从
/earth/anives/carni/lions.jpg
获取“lion.jpg”。计算机是高要求的对象;你的拼写必须一致。另外,你将如何称呼目录的第四级(sub-cat?)。我对你的另一个问题的回答有什么问题吗?如果已安装ImageMagick,则可以调用
显示文件名&