bash - 在后续条目中重用文本条目中的数值
问题描述
我正在尝试自动化一个过程并创建我需要的输出文件。到目前为止一切进展顺利,但我无法弄清楚如何在一行末尾获取数字并将其填充到后面的行中。
我已经尝试过使用 awk、sed 等的解决方案,但到目前为止,即使在许多谷歌的帮助下,我似乎也无法弄清楚这一点。
POP-Test-01
10.10.10.10
用户:用户
通过:通过
POP-Test-02
10.10.10.11
用户:用户
通过:通过
POP-Test-03
10.10.10.12
用户:用户
通过:通过
但我希望它从第一行获取数值,并将其附加到用户并传递行。但是对于及格线,我想加两次。
POP-Test-01
10.10.10.10
用户:User01
通过:Pass0101
POP-Test-02
10.10.10.11
用户:User02
通过:Pass0202
POP-Test-03
10.10.10.12
用户:User03
通过:Pass0303
这些只是示例,但主机名的最后两位数字(例如 POP-Test-03)将始终是数字。
编辑:我有一些要求提供更多细节。对不起那些家伙,所以这里是瘦的。请注意,所有值都是假的,它们来自输入文件。我只是使用了我能想到的最通用的值。
输入是一个文本文件,仅包含顶部示例中的值。所以我运行了一个部署实例的脚本,我从部署脚本得到的唯一输出是主机名和 IP 地址。我知道它不干净,但下面是我添加用户和密码的方式。但是每批服务器之间的用户和密码总是相同的,只有附加到用户的服务器编号和密码(两次)。我这样做是因为我们使用的应用程序需要输入: HOSTNAME
IP
User: (username)
Pass: (password)
(empty line)
通常我必须手动输入这些内容,这很耗时,我希望没有必要,因为我已经在我试图构建的脚本中使用以下命令启动它以自动化该过程。
所以我从这个开始:
POP-Test-01
10.10.10.10
我正在尝试解决这个问题:
POP-Test-01
10.10.10.10
User: User01
Pass: Pass0101
awk '/([0-9]{1,3}[\.]){3}[0-9]{1,3}/{print;print "User\:
Train";next}1' DeploymentDetails2.txt | tee DeploymentDetails2.txt<br/>
awk '/User/{print;print "Pass\: Training";next}1'
DeploymentDetails2.txt | tee DeploymentDetails2.txt<br/>
awk '/Pass/{print;print "\n";next}1' DeploymentDetails2.txt | tee
DeploymentDetails.txt<br/>
解决方案
这似乎产生了你正在寻找的东西:
#!/bin/bash
HOST="POP-Test-"
IP=10
for i in {01..99} ; do
echo ${HOST}${i}
echo "10.0.10.${IP}"
echo "User: User${i}"
echo "Pass: Pass${i}${i}"
echo
let IP++
done
由于您没有指定有输入文件,我冒昧地在脚本中生成结束编号,并在用户和传递行中重用它。
推荐阅读
- php - 在while循环之后限制if语句中的项目数
- assembly - 如何在 MIPS 程序集中将一个字符串复制到另一个字符串
- javascript - 首次加载时不同的 jQuery 过期时间
- debian - Debian Stretch 中的依赖问题
- reactjs - React Native 将父方法传递给子组件
- sql - 在 SQL 中选择唯一记录
- android - RecyclerView 项目不过滤
- javascript - 我可以从生产版本 create-react-app 中导入组件吗
- mysql - 同一个 MySql 数据库的多个 debezium 连接器不起作用
- docker - quantconnect IBController 需要每隔几个小时重新登录一次,