需求:编写Bash脚本实现带序号输出文件内容
实现读取file.txt并按指定格式输出的Bash脚本
嘿,这事儿好办,我给你写个简洁的Bash脚本就能搞定这个格式转换需求:
#!/bin/bash # 读取file.txt的内容,按空格拆分到数组中 read -ra hosts < file.txt # 初始化输出内容,先拼接开头标记 output="--START--" # 遍历数组,为每个主机生成对应的optN格式 for index in "${!hosts[@]}"; do opt_number=$((index + 1)) output+=" opt${opt_number}:${hosts[$index]}" done # 拼接结尾标记 output+=" --END--" # 输出最终结果 echo "$output"
脚本逻辑说明
- 用
read -ra命令读取file.txt的内容,自动按空格分割成数组hosts,这样每个主机名都是数组里的独立元素 - 遍历数组的索引(从0开始),把索引加1就是
opt后面的数字,逐个拼接成optN:hostX的格式 - 最后把开头的
--START--和结尾的--END--与中间内容拼接,输出最终结果
使用方法
- 把上面的代码保存为
format_hosts.sh文件 - 给脚本添加执行权限:
chmod +x format_hosts.sh - 运行脚本:
./format_hosts.sh
这样就能得到你想要的输出:--START-- opt1:host1a opt2:host2b opt3:host3c opt4:host4e --END--
内容的提问来源于stack exchange,提问作者Yazhini
相关产品推荐
相关产品推荐

