linux - 如何从目录中的文件名中保存多个 IP 地址?

标签 linux bash

我是 Bash 的新手,我正在编写一个 bash 脚本来自动从某个目录存储/检索证书。我想出了如何获得一个 IP,但如果目录中有多个具有 IP 地址的文件,我不确定如何存储 IP 列表。

例如,我可以查看路径保存在 ${PATH}
中的目录 PATH=$(ls path/to/directory) 仅从名为 0.0.0.0Cert.pem 的文件中获取 IP

SINGLE_IP=${echo "PATH%%C%"}

SINGLE_IP == 0.0.0.0

但是如果${PATH}

中有一个0.0.0.0Cert.pem和一个1.1.1.1Cert.pem

SINGLE_IP=${echo "PATH%%C%"} 只会获取目录中找到的第一个 IP,但是,我需要获取所有 IP,以便稍后在脚本中获取所有相关文件。

谢谢!

编辑:

为清楚起见,我只需要文件名中的 IP。除了实际 IP,我不需要 Cert.pem 或任何其他东西。

最佳答案

使用 find 命令:

找到“关键”文件:

find path/to/dir -type f -name *[0-9]Cert.pem

仅从文件名中提取 IP 地址:

find path/to/dir -type f -name "*[0-9]Cert.pem" -exec sh -c \
     'f=$(basename $1);  echo "${f%Cert*}"' _ {} \;

输出将采用以下格式:

0.0.0.0
1.1.1.1
...

关于linux - 如何从目录中的文件名中保存多个 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46651185/

相关文章:

linux - 如何使用ssh隧道进行本地开发?

linux - 计算 UNIX 时间时将日期数学舍入到最近的月份

bash - 在 Bash 中获取配置文件的最佳实践

bash - 在centos7 docker镜像上连接到mongodb

linux - 设置捕获组的长度

c++ - linux flex gcc 编译失败,出现 `undefined reference to ` TclReError'`

linux - ltrace()如何显示rand()

linux - "Event_Mask"的大小太小,允许的最小值为 64

bash - Shell脚本Bash,检查字符串是否以单引号开头和结尾

命令行字辅助