Bash 拆分包含路径的字符串

Bash Split a String with a Path in it

我有以下问题,我的文件“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

我希望你们能帮我解决我的问题.... 我从一个星期开始寻找结果:(

你可以通过 awk:

echo "/volume1/02_public/3rd_Party_Apps/SPK_SCRIPTS/SynoDSApps/webapp/scripte/Lysto BackUp/sys_func" | awk -F"/" '{print NF-2}'

上面写着:

  1. 按字符拆分传入行/ (-F"/")
  2. 打印字段数 NF 减 2 ({print NF-2})。 "minus 2"为第一个/前的空白和最后一个/
  3. 后目录中的文件名

您还可以将文件传递给充满路径的 awk,并让它生成一个包含计数或其他内容的新文件:

awk -F"/" '{print NF-2,[=11=]}` 2018_08_18__Lysto BackUp.plist > outputfile

这将创建一个名为 "outputfile" 的新文件,其中包含您要查找的计数,后跟生成该计数的路径(作为示例)