【发布时间】:2019-01-30 17:25:10
【问题描述】:
这是 grep -E "scsi0:" *.vmx | 的输出我的目录之一中的 grep -E "fileName" 命令:
scsi0:0.fileName = "vmname.vmdk"
scsi0:1.fileName = "vmname_1.vmdk"
scsi0:2.fileName = "vmname_2.vmdk"
scsi0:3.fileName = "P120_vmname_2.vmdk"
scsi0:4.fileName = "P120_vmname_3.vmdk"
我需要在该 vmx 文件中重写上面的输出,使其看起来像以下
scsi0:0.fileName = "vmname.vmdk"
scsi0:1.fileName = "vmname_1.vmdk"
scsi0:2.fileName = "vmname_2.vmdk"
scsi0:3.fileName = "vmname_3.vmdk"
scsi0:4.fileName = "vmname_4.vmdk"
所以本质上脚本需要以下内容:
- 查找包含 scsi0 和 filename 的行并删除 vmname 之前双引号后的所有内容
- 检查“scsi0:”之后该行中的数字是什么,并在下划线后添加/替换该数字,因此 P120_vmname_2 变为 vmname_3
问题是 vmname 之前可以有任意数量的字符需要删除,需要修复的行可以在源文件中的任何位置。
我需要将单独的行输出分配给单独的变量还是可以只用一个变量来操作它们?
谢谢
【问题讨论】:
-
请避免"Give me the codez" 问题。而是显示您正在处理的脚本并说明问题所在。另见How much research effort is expected of Stack Overflow users?
-
我投票结束这个问题,因为它属于serverfault.com