Berkeley CSUA MOTD:Entry 13415
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/05/24 [General] UID:1000 Activity:popular
5/24    

2004/4/27-28 [Computer/SW/Unix] UID:13415 Activity:moderate 75%like:13426
4/27    sed "s/$var1/$var2/" file
        I need the double quotes so that it will use the the value
        of the variables, var1 and var2, rather than search for the
        string '$var1'.  However, these variables, themselves,
        contain special characters, and so sed isn't working right.
        How can I quote the special characters within the variables?
        \_ use perl
        \_ Just for fun, how do you do it with sed?
           \_ this has not so much to do with sed as it does your
              shell, dude.
            \_ Piping the variable through sed 's/\//\\\//g' will get
               rid of '/' and similar expressions will get rid of other
               special characters.
               \- it will be very tough to do this realiably for tcsh,
                  because you need to handle $, space and history chars
                  slightly differently. there are really klugy approaches
                  but it is best not to use csh/tcsh here. for a specific
                  purpose, you can probably come up with something, but for
                  general input/hostile input, i dont think so. --psb
               \_ ASSUMING only slashes are your problem, this gets you:
 sed "s/`echo $var1 | sed 's/\//\\\//g'`/`echo $var2 | sed 's/\//\\\//g'`/" file
                  Yukola...
                   \_ in other words, use perl you dweeb.
                   \_ Well, you can get around the slash problem by using
                      a different character for the delimiter: s:$var:$var2:g.
                      But it's still a problem for perl.  -tom
        \_ shell programming sucks
           \_ Mmm... sweeping, pointless statement.
              \_ Trivial, obvious statement, just like this one.
                 \_ If I set the BOZO flag to off, will *nix automagically
                    migrate all sweeping, pointless, trivial, obvious
                    statements to specific, meaningful, vital, esoteric
                    statements?
2025/05/24 [General] UID:1000 Activity:popular
5/24    

You may also be interested in these entries...
2012/9/20-11/7 [Computer/SW/Unix, Finance/Investment] UID:54482 Activity:nil
9/20    How do I change my shell? chsh says "Cannot change ID to root."
        \_ /usr/bin/chsh does not have the SUID permission set. Without
           being set, it does not successfully change a user's shell.
           Typical newbie sys admin (on soda)
           \_ Actually, it does: -rwsr-xr-x 1 root root 37552 Feb 15  2011 /usr/bin/chsh
	...
2012/9/24-11/7 [Computer/SW/Languages, Computer/SW/Unix] UID:54484 Activity:nil
9/24    How come changing my shell using ldapmodify (chsh doesn't work) doesn't
        work either? ldapsearch and getent show the new shell but I still get
        the old shell on login.
        \_ Scratch that, it magically took my new shell now. WTF?
           \_ probably nscd(8)
	...
2012/4/27-6/4 [Computer/SW/Languages/Misc, Computer/SW/Unix] UID:54372 Activity:nil
4/27    I wrote a little shell script to collect iostat data:
        #!/bin/bash
        DATE=`date +%m%d`
        DATADIR=/var/tmp/user
        OUTPUTFILE=$DATADIR/$DATE.out
        while true
	...
2011/10/26-12/6 [Computer/SW/Unix] UID:54202 Activity:nil
10/24  What's an easy way to see if say column 3 of a file matches a list of
       expressions in a file? Basically I want to combine "grep -f <file>"
       to store the patterns and awk's $3 ~ /(AAA|BBB|CCC)/ ... I realize
       I can do this with "egrep -f " and use regexp instead of strings, but
       was wondering if there was some magic way to do this.
       \_ UNIX has no magic. Make a shell script to produce the ask or egrep
	...
2011/5/19-7/13 [Computer/SW/Languages/Misc] UID:54115 Activity:nil
5/19    If script A runs, and calls script B ..... is it possible for me to exit\
        script A based on results of script B and not continue?
        \_ assume any shell
        \_ Yes.
           \_ without passing the result to some stupid temp file?
              \_ It sounds like you want "scriptb || exit", which will run
	...
2009/8/19-9/1 [Computer/SW/Unix] UID:53285 Activity:nil
8/18    Hi again, new freebsd guy here again, in bash I was able to go
        LD_LIBRARY_PATH=/opt/foo/lib ./runmyapp
        I managed to do this in tcsh by using setenv in a shell script
        that setenv's the lib path and then executes $1, just wondering
        if there was a way to do it in 1 line from the cmd line as in bash?
        Thanks, btw %2c or %3c worked.  Freebsd, tcsh and vi forever!
	...
2009/7/22-27 [Computer/SW/Unix] UID:53181 Activity:nil
7/22    Why does everyone's 'mail last read' date say Jul 19th? even for people
        who don't log in (shell is safesorry)?  Just wondering O mighty unix
        gurus.
        \_ Modification time change when it was copied to new soda.
	...