0

I have a text file that I want sed to add a few lines to right before an existing line.

What I want to add is:

currentpagedevice /InputAttributes get 0 get
dup null eq
{ pop }
{ dup length 1 add dict copy
dup /InputAttributes
1 dict dup /Priority [0 1 2 3] put
put setpagedevice
} ifelse

And I want it right before the line containing the following:

Page: 1 1

Here's what I have in a file called sedscript.sed, but it doesn't seem to do anything..:

s#Page: 1 1#\
\i\ncurrentpagedevice /InputAttributes get 0 get\ndup null eq\
\n{ pop }\n{ dup
length 1 add dict copy\
\ndup /InputAttributes\
\n1 dict dup /Priority [0 1 2 3] put\
\nput
setpagedevice\
\n} ifelsei#

Here's how I call it:
sed -f sedscript.sed def011.txt

Thanks for your help in advance.

2
Contributors
6
Replies
7
Views
10 Years
Discussion Span
Last Post by asciiletters
0

I updated it a little, but still nothing happens.:

s@\(*Page: 1 1*$\)@\
\ncurrentpagedevice /InputAttributes get 0 get\
\ndup null eq\
\n{ pop }\
\n{ dup length 1 add dict copy\
\ndup /InputAttributes\
\n1 dict dup /Priority [0 1 2 3] put\
\nput setpagedevice\
\n} ifelsei\
\n\1@

0
zsh 4.3.4% echo "Page 1 1"|sed '/Page 1 1/i\
currentpagedevice /InputAttributes get 0 get\
dup null eq\
{ pop }\
{ dup length 1 add dict copy\
dup /InputAttributes\
1 dict dup /Priority [0 1 2 3] put\
put setpagedevice\
} ifelse'
currentpagedevice /InputAttributes get 0 get
dup null eq
{ pop }
{ dup length 1 add dict copy
dup /InputAttributes
1 dict dup /Priority [0 1 2 3] put
put setpagedevice
} ifelse
Page 1 1
0

Cool thanks, so working with what you gave me. I tried to make this work with my file so I put it in the script as:

/*Page: 1 1*/i\
currentpagedevice /InputAttributes get 0 get\
dup null eq\
{ pop }\
{ dup length 1 add dict copy\
dup /InputAttributes\
1 dict dup /Priority [0 1 2 3] put\
put setpagedevice\
} ifelse

Then I ran the script with:

sed -f sedscript.sed def011.txt

But it still does not do anything...

0

You will get the modified output, you just have to save it,
or, if you have the GNU sed, you could use the -i switch to modify the file in-place.

0

I went like this:

sed -f sedscript.sed def011.txt>output.txt

No change was made.

Here's what the line looks like that I'm putting this stuff in front of. Its a postscript file that I'm editting in actuallity if that matters.

%%Page: 1 1

0

lol, so I tried to copy and paste that exact string in instead of the reg exps and it seemed to start working. Thanks for all the help.

Now if only I could get my postscript file to print some pages from one print tray and then some pages from another, all within the same printjob. I have the code that seems to change the tray, but it only wants to do it once.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.