LINUX.ORG.RU

История изменений

Исправление kmeaw, (текущая версия) :

Или можно переписать это решение непосредственно на sh, но оно будет выглядеть (на мой взгляд) странно.

in_conn=0
remote=""

while read line; do
    case "$line" in
    "<connection>")
        conn=""
	remote=""
        in_conn=1
        ;;
    "</connection>")
        if [ "$remote" = "192.168.254.1" ]; then
            continue
        fi
        echo "<connection>$conn"
        echo "</connection>"
        in_conn=0
        ;;
    *)
        if [ $in_conn -eq 0 ]; then
            echo "$line"
	    continue
	fi
	set -- $line
	if [ "$1" = "remote" ]; then
            remote=$2
	fi
        conn="$conn
$line"
        ;;
    esac
done < /etc/openvpn/openvpn.conf

Исходная версия kmeaw, :

Или можно переписать это решение непосредственно на sh, но оно будет выглядеть (на мой взгляд) странно.

in_conn=0

while read line; do
    case "$line" in
    "<connection>")
        conn=""
        in_conn=1
        ;;
    "</connection>")
        if echo "$conn" | grep -q "remote 192.168.254.1 "; then
            continue
        fi
        echo "<connection>$conn"
        echo "</connection>"
        in_conn=0
        ;;
    *)
        if [ $in_conn -eq 0 ]; then
            echo "$line"
            continue
        fi
        conn="$conn
$line"
        ;;
    esac
done < /etc/openvpn/openvpn.conf