可以在长途的sed命令来了几行破? [英] Can a long sed command be broken over several lines?
本文介绍了可以在长途的sed命令来了几行破?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我 SED
命令,这是非常长的。
SED -i的/追加RO的initrd = initrd.img中安静飞溅nbdport = 2000 /追加RO的initrd = initrd.img中安静飞溅nbdport = 2000 =视频LVDS-1:D / G'/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
是否可以在多个行砸得更清楚它做什么?
例如。像?
SED -i的/
追加RO的initrd = initrd.img中安静飞溅nbdport = 2000
/
追加RO的initrd = initrd.img中安静飞溅nbdport = 2000 =视频LVDS-1:D
/G'
/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
解决方案
一对夫妇的方式,你可以让这个更小。如果你只是附加的文本行的末尾,你可以使用SED是这样的:
SED -i'/追加RO的initrd = initrd.img中安静飞溅nbdport = 2000 / S / $ /视频= LVDS-1:D'...
另外,使用shell变量将它拆分了一下。
PXE_BOOT_FILE =的/ var / lib中的/ tftpboot / LTSP / I386 / pxelinux.cfg的/默认
SEARCH_PATTERN ='追加RO的initrd = initrd.img中安静飞溅nbdport = 2000'
REPLACE_PATTERN =$ SEARCH_PATTERN视频= LVDS-1:D
SED -iS / $ SEARCH_PATTERN / $ REPLACE_PATTERN / G$ PXE_BOOT_FILE
I have sed
command that is very long
sed -i 's/append ro initrd=initrd.img quiet splash nbdport=2000/append ro initrd=initrd.img quiet splash nbdport=2000 video=LVDS-1:d/g' /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
Can it be broken over several lines to make it more clear what it does?
E.g. something like?
sed -i 's/
append ro initrd=initrd.img quiet splash nbdport=2000
/
append ro initrd=initrd.img quiet splash nbdport=2000 video=LVDS-1:d
/g'
/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
解决方案
A couple of ways you can make this smaller. If you are just appending the text to the end of the line, you can use sed like this:
sed -i '/append ro initrd=initrd.img quiet splash nbdport=2000/s/$/ video=LVDS-1:d' ...
Otherwise, use shell variables to split it up a bit.
PXE_BOOT_FILE=/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
SEARCH_PATTERN='append ro initrd=initrd.img quiet splash nbdport=2000'
REPLACE_PATTERN="$SEARCH_PATTERN video=LVDS-1:d"
sed -i "s/$SEARCH_PATTERN/$REPLACE_PATTERN/g" "$PXE_BOOT_FILE"
这篇关于可以在长途的sed命令来了几行破?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文