我有一个看起来像的字符串:
BOOT_IMAGE=/boot/vmlinuz-2.6.32-31-generic HTTP_BOOT=192.168.1.133 root=UUID=b4 ro quiet splash
在示例“/ proc / cmdline”
中我想用sed提取HTTP_BOOT。我当前的sed命令看起来就是这样。
HTTP_BOOT=$(sed -r 's/^.*HTTP_BOOT=(.*?).*/\1/' /proc/cmdline)
var HTTP_BOOT应包含192.168.1.133。 如果有人能纠正我的sed,那真的很开心。
由于
答案 0 :(得分:1)
试试这个:
HTTP_BOOT=$(sed 's/.*HTTP_BOOT=\([^ ]*\) .*/\1/' < /proc/cmdline)
答案 1 :(得分:0)
你快到了。试试这个sed:
sed -r 's/^.*HTTP_BOOT=([^\ ]*).*$/\1/'
答案 2 :(得分:0)
HTTP_BOOT=$(egrep -o 'HTTP_BOOT=[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' /proc/cmdline | cut -d '=' -f 2)
对IP
进行一次不错的小小理智检查