不连续数组文件,输出为一个由单个数字组成的数组文件

本文介绍了一种通过shell脚本自动获取机房内已关机服务器设备号的方法。脚本能够读取包含设备编号范围的文件,并输出每个具体的设备号,方便进行设备管理和维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机房有关机的服务器,需要每一台设备的设备号,用脚本实现输出每台设备的设备号。
1.关机设备列表

cat num.txt 
   8-16 
   19-23 
   26-32 
   37-40 
   43-46 
   56-60 
   62 
   64 
   68-69 
   71 
   73 
   76-77 
   80 
   84 
   87 
   89-95 

2.输出每台设备的设备号 test.sh

#!/bin/bash 
for line in `cat num.txt`  #逐行读取文件
	do
		OLD_IFS="$IFS"           #定义一个变量为默认IFS,环境变量$IFS,用于内部字段分隔符 参考:http://blog.itpub.net/27181165/viewspace-775820/
		IFS="-"                  #还原IFS为默认值 
		arrj=($line)
		IFS="$OLD_IFS"          #还原IFS为默认值
		a=${arrj[0]}              #取数组第一个数
		b=${arrj[1]:-${arrj[0]}}  # “:-”是三目运算符 
		for((i=$a;i<=$b;i++));
		do
			echo $i
		done;
	done
[root@localhost ~]# ./test.sh | xargs  >>num5.txt
[root@localhost ~]# cat num5.txt 
8 9 10 11 12 13 14 15 16 19 20 21 22 23 26 27 28 29 30 31 32 37 38 39 40 43 44 45 46 56 57 58 59 60 62 64 68 69 71 73 76 77 80 84 87 89 90 91 92 93 94 95
[root@localhost ~]# sed -e 's/ /;/g' num5.txt
8;9;10;11;12;13;14;15;16;19;20;21;22;23;26;27;28;29;30;31;32;37;38;39;40;43;44;45;46;56;57;58;59;60;62;64;68;69;71;73;76;77;80;84;87;89;90;91;92;93;94;95
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值