sed更改字符串定界与眼圈

sed更改字符串定界与眼圈,sed,Sed,我正在尝试使用“sed”命令更改下一行 "metamodes" "DFP-0: 2048x2048 +1920+0, DFP-2: 1280x1024 +640+0, DFP-1: 1920x1080 +0+1024" 我需要sed命令找到分辨率2048x2048或1280x1024或1920x1080并更改位置(+1920+0或+640+0或+0+1024)。就像这个位置不总是一样,我不能只选择这个位置,我必须找到分辨率(总是相同的),并将链接位置更改

我正在尝试使用“sed”命令更改下一行

"metamodes" "DFP-0: 2048x2048 +1920+0, DFP-2: 1280x1024 +640+0, DFP-1: 1920x1080 +0+1024"
我需要sed命令找到分辨率2048x2048或1280x1024或1920x1080并更改位置(+1920+0或+640+0或+0+1024)。就像这个位置不总是一样,我不能只选择这个位置,我必须找到分辨率(总是相同的),并将链接位置更改为分辨率

最终结果应该是:

"metamodes" "DFP-0: 2048x2048 +1280+0, DFP-2: 1280x1024 +0+1024, DFP-3: 1920x1080 +1408+4440"
我使用了下一个命令:

sed 's/2048x2048.*[^,]/2048x2048 +1280+0,/g' /etc/X11/xorg.conf
有什么建议吗?
感谢使用
*[^,]
您可以在最后一个字符不是
时尽可能匹配任何字符。您希望在第一个
之前匹配所有字符。请使用
[^,]*
: sed's/2048x2048[^,]*/2048x2048+1280+0/g'/etc/X11/xorg.conf

这3种替换可以组合使用:

sed 's/2048x2048[^,]*/2048x2048 +1280+0/g;
     s/1280x1024[^,]*/1280x1024 +640+0/g;
     s/1920x1080[^,]*/1920x1080 +0+1024/g' /etc/X11/xorg.conf
测试这将显示,
也匹配,因此需要将引号添加到字符类:

sed 's/2048x2048[^,"]*/2048x2048 +1280+0/g;
     s/1280x1024[^,"]*/1280x1024 +640+0/g;
     s/1920x1080[^,"]*/1920x1080 +0+1024/g' /etc/X11/xorg.conf

欢迎使用SO,感谢您以代码的形式分享您的尝试。您的代码/示例未包含在代码标记中,我已尝试修复它们,但不确定您的实际文件是否仅与此类似?因此,请编辑您的样品,以使我们清楚(如果此编辑的样品看起来与实际样品不一样),谢谢。非常感谢,您的解决方案非常完美!不客气。看看