【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%,}"

 

posted @ 2022-05-25 22:58  苏格拉底的落泪  阅读(99)  评论(0)    收藏  举报