【发布时间】:2011-03-12 04:14:25
【问题描述】:
我一直在使用 sed 进行按摩(在此处找到教程:Grymoire)我们从硬件供应商处获得的 ASCII 文件。文件有这样的结构
Model-Manufacturer:D12-500
Test_Version:2.6.3
但是我们收到的一些文件是随机“损坏”的,并且缺少“Model-Manufacturer:”条目
Model-Manufacturer:D12-500
Test_Version:2.6.3
Model-Manufacturer:H24-700
Test_Version:2.6.3
Test_Version:2.6.3
Model-Manufacturer:R15-300
Test_Version:2.6.3
我想用 Sed 解决这个问题,并在 "Test_Version:2.6.3" 的第二次出现之前放置 "Model-Manufacturer:N/A" 的缺失条目;这是我的代码
sed -n '
/Test_Version/ {
# found "Test_Version" - read in next line
N
# look for "Test_Version" on the second line
# and print if there.
/\n.*Test_Version/ {
# found it - now edit making one line
s/Test_Version/Model-Manufacturer:N/A/
}
}' infile > outfile
它不工作。我相信在替换之前我需要记住每个“Test_Version”和“Model_Manufacturer”的位置,对吗?我可以用 sed 做到这一点吗?
提前感谢您的意见。
【问题讨论】:
标签: sed