Concerning escaping the colon: I still have the thinnest possible understanding of the finer points of sed and the substitution syntax, especially about escaping special characters. I don't even know if the backslash would go before or after the colon!

But I had wondered about the possible effect of that colon myself.

I ran a modified version of your suggested test, replacing the colon with a space:

    sed -e 's/DEVICE/DEVICE Lubuntu13551/'

Now on the LTSP client, the resulting line is:

    DEVICE Lubuntu1:3551 Lubuntu1 3551

------------------

I also tried

    sed -e 's/DEVICE$/DEVICE Lubuntu1:3551/'

And that had no effect whatsoever. The result was still "DEVICE Lubuntu1:3551 Lubuntu1:3551".

------------------

My current thought is this: I think the LTSP clients use a static, read-only network boot image + a writable union filesystem overlaying the read-only image. I have seen only the slimmest mention of it in writing, however. Perhaps I'm not searching with the right termsto find better documentation. But if that overlay has persistence, then perhaps there could be results like the above. As someone suggested earlier, it's as if the script had been run twice. Well perhaps it is being run multiple times over succeeding boots and being applied to a persistent overlay.

I tried earlier to copy an alternative version of the whole config file in the script instead of using sed, and that failed, but I'm going to try that again. If it works, I think it would overcome a persistent-overlay behavior with sed.

And I'll try my persistent-overlay theory with the LTSP list folks. They are the ones who should know about that.


On 12/19/2012 5:31 PM, ∅ wrote:

If you escape the colon with a backslash does that fix it? A colon is a potential delimiter although that seems to be unexpected output regardless.

wxl

On Dec 19, 2012 2:27 PM, "Jonathan Marsden" <[email protected] <mailto:[email protected]>> wrote:

    John,

    On 12/19/2012 01:16 PM, John Hupp wrote:

    >>> It all works fine except for this substitution:
    >>> -e 's/DEVICE/DEVICE Lubuntu1:3551/'

    If the original line concerned starts out as just DEVICE (followed
    by a
    line feed to mark the end of line), then I'd suggest making the sed
    command be

      sed -e 's/DEVICE$/DEVICE Lubuntu1:5551/'

    So that, even if run twice, the second run will have no effect on
    this line.

    If there *is* "other junk" after DEVICE before the end of the
    line, and
    there is only one line containing DEVICE in the file concerned, you
    could consider

      sed -e 's/DEVICE.*$/DEVICE Lubuntu1:3551/'

    which would remove any trailing junk after DEVICE and replace it with
    the desired string.

    Jonathan


    --
    Lubuntu-users mailing list
    [email protected] <mailto:[email protected]>
    Modify settings or unsubscribe at:
    https://lists.ubuntu.com/mailman/listinfo/lubuntu-users


-- 
Lubuntu-users mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/lubuntu-users

Reply via email to