我已经去下面的文本SED插入匹配图案
1012 - ABC-DEF
VIP
编号
指数
诊断
变异
硬件
2017年6月19日14:41:28
,我想追加 “1012 - ABC-DEF” 两个模式“之间每行的开始1012 - ABC-DEF”和 “2017年6月19日14:41:28”
这样的结果将是:
1012 - ABC-DEF
1012 - ABC-DEF VIP
1012 - ABC-DEF数
1012 - ABC-DEF指数
1012 - ABC-DEF诊断
1012 - ABC-DEF变
1012 - ABC-DEF硬件
2017年6月19日14时41分二十八秒
虽然我有解决方案,但我正在寻找更好的解决方案。
这里是我的解决方案:
sed -i "/^\([0-9][0-9][0-9][0-9]\) - ABC-DEF/,/2017\-\([0-9][0-9]\)\-\([0-9][0-9]\) \([0-9][0-9]\)\:\([0-9][0-9]\)\:\([0-9][0-9]\)/{/^\([0-9][0-9][0-9][0-9]\) - ABC-DEF/n;/2017\-\([0-9][0-9]\)\-\([0-9][0-9]\) \([0-9][0-9]\)\:\([0-9][0-9]\)\:\([0-9][0-9]\)/!{s/^/1012 - ABC-DEF /g}}" *
我想是如果文本模式 “1012 - ABC-DEF” 匹配它会自动在{s/^/1012填写 - ABC-DEF/“} 我认为解决方案是{s/^/\ 1-ABC-DEF/g}}”但是这给了一个错误(在's'命令的RHS上无效的参考\ 1)。
如何解决填写参考“1012”自动或者甚至更好填写引用“1012” - “ABC” - “DEF”自动
感谢@kent的回答,我是一个新手,不熟悉你的awk或其他人可以产生sed的代码? – Anekdote