【shell编程】统计目录文件数量、提取IP
统计目录文件数量
计算文件数量:
#!/bin/bash
#script name:
#author: 524627027@qq.com
#version: v1
#decription: 此脚本用于统计指定目录下文件及其子目录数量
#参数定义
workdir=$(cd $(dirname $0); pwd)
inputdir=""
filesum=0
dirsum=0
#输入目录参数
read -p "请输入需要统计文件和子目录数量的目录(绝对路径):" inputdir
#判断输入的目录
if [ ! -n "$inputdir" ] ;then
#输入为空时检查统计当前目录下文件数量
echo "未输入目录,统计当前目录下的文件数量"
filesum=`ls -lR $workdir | grep "^-"| wc -l`
dirsum=`ls -lR $workdir | grep "^d"| wc -l`
#输出展示结果
echo -e "当前目录下文件数量为:\e[1;32m $filesum \e[0m ,子目录数量为:\e[1;32m $dirsum \e[0m "
else
if [ -d "$inputdir" ]; then
filesum=`ls -lR $inputdir | grep "^-"| wc -l`
dirsum=`ls -lR $inputdir | grep "^d"| wc -l`
#输出展示结果
echo -e "$inputdir 此目录下文件数量为:\e[1;32m $filesum \e[0m ,子目录数量为:\e[1;32m $dirsum \e[0m "
else
echo -e "\e[1;31m 输入的目录不存在,请输入已存在的正确目录! \e[0m"
fi
fi
#!/bin/bash
# 读取文件内容到变量
file_content=$(cat file.txt) # 假设文件名为 file.txt
# 提取 IP 地址列表
# 使用正则表达式匹配 IP 地址
ip_list=$(echo "$file_content" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | tr '\n' ',')
# 将逗号分隔的 IP 地址列表转换为数组
IFS=',' read -ra ips <<< "$ip_list"
# 初始化一个空字符串来存储最终结果
result=""
# 循环处理每个 IP 地址
for ((i = 0; i < ${#ips[@]}; i++)); do
if [ $i -eq $((${#ips[@]} - 1)) ]; then
# 最后一个 IP 地址,不添加 :6789
result="$result${ips[i]}"
else
# 其他 IP 地址,添加 :6789
result="$result${ips[i]}:6789,"
fi
done
# 输出结果,去掉最后一个逗号
echo "IP 地址列表:${result%,}"