05-30-2003
Sed bug in OS X?
The actual line I'm using was more complex so I "simplified" it to the line in my original post:)
Actually what I'm doing is scanning jpeg files that have info entered in the Photoshop "file info" dialog box and extracting this info for inclusion in a database. The info I'm interested in is xml formatted with some Adobe namespace info.
This line works great for extracting the info:
egrep -a '<photoshop:([^>]+)>[^<]*</photoshop:\1>' "botanical-garden12-full.jpg"
yeilds lines like:
<photoshop:CaptionWriter>this is where the caption writer goes</photoshop:CaptionWriter>
<photoshop:Headline>this is where the headline goes</photoshop:Headline>
<photoshop:Instructions>this is where the instructions go</photoshop:Instructions>
If you then pipe it to sed to try and strip out the xml like so:
<egrep stuff from above...> | sed 's/<photoshop:\([^>]+\)>\([^<]*\)<\/photoshop:\1>/\1: \2>/g'
returns results as if the sed routine wasn't even there...
<photoshop:CaptionWriter>this is where the caption writer goes</photoshop:CaptionWriter>
<photoshop:Headline>this is where the headline goes</photoshop:Headline>
<photoshop:Instructions>this is where the instructions go</photoshop:Instructions>
I've tried various quotation, delimiter and escape styles on the above ("" as opposed to '', () as opposed to \(\) and s@@@ as opposed to s/// none of it produced the desired results.
I changed the search portion of the sed routine to a simple character class for testing and even that failed. The only thing that seems to work is a string literal.
Do you see any glaring errors in the above?
Thanks
Ken
7 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi all,
when using sed to replace a piece of text multiple times in a file something weird happens.If there is no carriage return after the last line in the file it deletes the line. Anyone know why ?
Thanks
Paul
command line :
sed -e "s/System.out.println/\/\/Commented out by us... (6 Replies)
Discussion started by: madcyril
6 Replies
2. UNIX for Advanced & Expert Users
I have been mailing myself logs for a while, but just ran into a problem because of a process that cannot HUP its log. (I realize thats why they implemented the "copytruncate" option in the first place)
When I use logrotate with "copytruncate" and "compress" there is a problem. The "myScript"... (0 Replies)
Discussion started by: jjinno
0 Replies
3. Shell Programming and Scripting
Hi All,
I am using Red Hat Linux on my servers. The problem that I am facing is, sometimes the /opt usage on the server shows used percentage as 100% , when actually it is simply 20%.
When I reboot the system, it comes back to 20%.Is this a bug in the system or my settings have gone wrong... (1 Reply)
Discussion started by: nua7
1 Replies
4. AIX
xxxxserver# lsattr -El inet0 | grep 255.240.0.0,32.224.0.0,32.78.120.254 | grep '.40'
route net,-hopcount,1,-netmask,255.240.0.0,32.224.0.0,32.78.120.254
How this is possible? (1 Reply)
Discussion started by: itik
1 Replies
5. UNIX for Dummies Questions & Answers
#!/bin/bash
if then
#echo "infinite loop"
exit 0
fi
when I run this file I get the following error:
./test_infinite_loop: line 5: syntax error near unexpected token `fi'
./test_infinite_loop: line 5: `fi'
:confused: (4 Replies)
Discussion started by: jon80
4 Replies
6. Programming
Hello,
Im using the g++(g++ Ubuntu/Linaro 4.4.4-14ubuntu5 4.4.5) and im trying to compile a small snippet code and got into an endless loop.I recompiled that in VS2010 under Windows 7 and the answer is as expected.so i wonder is this a bug of g++?here is my code.
#include<iostream>
using... (5 Replies)
Discussion started by: homeboy
5 Replies
7. Programming
Hello friends today i have created a program that is working fine . but when string becomes equal it does not work .
/* String.h header series
Comparison function
memcmp = return 0 if string equal else return less or greater than value by comparing pointer first and pointer second
... (6 Replies)
Discussion started by: rink
6 Replies
LEARN ABOUT OPENSOLARIS
getusershell
getusershell(3C) Standard C Library Functions getusershell(3C)
NAME
getusershell, setusershell, endusershell - get legal user shells
SYNOPSIS
#include <unistd.h>
char *getusershell(void);
void setusershell(void);
void endusershell(void);
DESCRIPTION
The getusershell() function returns a pointer to a legal user shell as defined by the system manager in the file /etc/shells. If
/etc/shells does not exist, the following locations of the standard system shells are used in its place:
/bin/bash /bin/csh
/bin/jsh /bin/ksh
/bin/ksh93 /bin/pfcsh
/bin/pfksh /bin/pfsh
/bin/sh /bin/tcsh
/bin/zsh /sbin/jsh
/sbin/pfsh /sbin/sh
/usr/bin/bash /usr/bin/csh
/usr/bin/jsh /usr/bin/ksh
/usr/bin/ksh93 /usr/bin/pfcsh
/usr/bin/pfksh /usr/bin/pfsh
/usr/bin/sh /usr/bin/tcsh
/usr/bin/zsh /usr/sfw/bin/zsh
/usr/xpg4/bin/sh
The getusershell() function opens the file /etc/shells, if it exists, and returns the next entry in the list of shells.
The setusershell() function rewinds the file or the list.
The endusershell() function closes the file, frees any memory used by getusershell() and setusershell(), and rewinds the file /etc/shells.
RETURN VALUES
The getusershell() function returns a null pointer on EOF.
BUGS
All information is contained in memory that may be freed with a call to endusershell(), so it must be copied if it is to be saved.
NOTES
Restricted shells should not be listed in /etc/shells.
SunOS 5.11 1 Nov 2007 getusershell(3C)