我有以下问题,我的文件'2018_08_18__Lysto BackUp.plist'看起来像这样:
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/exit_codes/
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/exit_codes/code_FUNC
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/exit_codes/code_SCRI
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/login/
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/login/check_appprivilege.php
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/login/check_login.php
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/login/privilege.php
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/scripte/
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/scripte/Lysto BackUp/
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/scripte/Lysto BackUp/sys
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/scripte/Lysto BackUp/sys_func
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/SSH_ERROR
我用for循环读取文件,所以我得到每一行:
mainDirectory
我需要这样的输出... 计数->'6'
所以我需要一个想法来计算每个/ * /
1 --> /volume1/
2 --> 02_public/
3 --> 3rd_Party_Apps/
4 --> SPK_SCRIPTS/
5 --> SynoDSApps/
6 --> webapp/
在这种情况下:
/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/scripte/Lysto BackUp/sys_func
我只需要这个计数->'8'
1 --> /volume1/
2 --> 02_public/
3 --> 3rd_Party_Apps/
4 --> SPK_SCRIPTS/
5 --> SynoDSApps/
6 --> webapp/
7 --> scripte/
8 --> Lysto BackUp/
not in the count result --> sys_func
我希望你们能帮助我解决我的问题...。 自一个星期以来,我一直在寻找结果:(
答案 0 :(得分:2)
您可以使用awk
来获取此信息:
echo "/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/scripte/Lysto BackUp/sys_func" | awk -F"/" '{print NF-2}'
哪个说:
/
(-F"/"
)分隔输入行NF
减2({print NF-2}
)。第一个/
之前的空格为“负2”,最后一个/
之后的目录中的文件名为您还可以将文件传递给充满路径的awk,并使用计数或其他内容将其吐出一个新文件:
awk -F"/" '{print NF-2,$0}` 2018_08_18__Lysto BackUp.plist > outputfile
这将创建一个名为“ outputfile”的新文件,该文件具有您要计算的计数,后跟生成该计数的路径(例如)