sed-工艺线两次或倒带
我在两个模式之间编辑数据,遇到了一个问题,即sed无法匹配背对背的模式,因为第一个模式与第二个模式出现在同一行中 我的数据结构如下所示:sed-工艺线两次或倒带,sed,Sed,我在两个模式之间编辑数据,遇到了一个问题,即sed无法匹配背对背的模式,因为第一个模式与第二个模式出现在同一行中 我的数据结构如下所示: sed '/PATTERN1/,/PATTERN2/ {s/DATA_[12]/SUB/g}' myFile 模式2标题模式1 数据 数据\u 1… 数据_2… 数据 模式2标题模式1 数据 数据\u 1… 数据_2… 数据 数据 数据 模式2 我的sed命令如下所示: sed '/PATTERN1/,/PATTERN2/ {s/DATA_[12]/SUB
sed '/PATTERN1/,/PATTERN2/ {s/DATA_[12]/SUB/g}' myFile
模式2标题模式1数据
数据\u 1…
数据_2…
数据
模式2标题模式1
数据
数据\u 1…
数据_2…
数据
数据
数据
模式2
我的sed命令如下所示:
sed '/PATTERN1/,/PATTERN2/ {s/DATA_[12]/SUB/g}' myFile
图案之间的行数是动态的,除了标题行中打印的内容外,没有其他可靠的图案可供搜索。标题行是数据块结尾的唯一指示符
“倒带”一行是否与“n”相反
谢谢 这可能适合您(GNU-sed):
这将使用遇到模式2时的转到来检查模式1。将新行附加到缓冲区并应用更改,然后您可以通过考虑新行之前的部分来进一步处理前一行。-或者,将该行放在保留空间中,并在检查下一行时交换它……这是关于XML或JSON的吗?显示该示例输入的所需输出。替换工作正常,我的问题是,由于PATTERN1和PATTERN2发生在同一行上,PATTERN1出现的第二个位置被跳过,因为该行包含在第一个匹配中。我的意图是在模式1和模式2出现的任何地方执行替换<代码>sed'h/PATTERN1/,/PATTERN2/{s/DATA_u12]/SUB/g;x}'myFile第二次出现的内容仍然被跳过