08-08-2017
hold space vs. back reference
Quote:
Originally Posted by
bakunin
What you need is not a (non-persistent) backreference but the (persistent) "hold space": this is a space where you can add, copy or pull text out of. I suggest you read the man page of sed to make yourself acquainted with the concept.
You best start by thinking through what you need to do for every type of line, i.e.:
a) lines with "country=" in them: load hold space with country code
b) all lines:
b1) split into tags (starting with "<")
b2) remove the tags themselves (as i took it from your sample output)
b3) add the content of the hold space to the begin of the pattern space
Note that you make your life a lot easier by using multi-line sed-programs. In principle you can the above also in a one-liner - like you can write a C program into one line too - but it would be very hard to read, even harder to understand and nigh impossible to debug.
I hope this helps.
bakunin
Thanks. I'll look into that. the data comes in all on one line, which is what allowed me to think the back reference would work. I'll look at the hold space as an option.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
hi all,
im trying to use a sed command to remove all occurenes of \p\g
what i used so far is : sed 's!\p\g!!g' file
but this doesnt work ?
Any ideas, thanks for helping. (2 Replies)
Discussion started by: seaten
2 Replies
2. Shell Programming and Scripting
Hi,
i am getting this error........
find ./ | sed '/\(*\) \(*\)/\2\1/'
Unrecognized command: /\(*\) \(*\)/\2\1/
Any idea???
regards
Apoorva Kumar (4 Replies)
Discussion started by: apoorvasharma80
4 Replies
3. Shell Programming and Scripting
Hi
I am a beginner to sed command, here I have a question about using sed to add a few characters into a token of a string.
For example, I have a file,
sqw:qqq:123124:uiqe
dfd:ccc:12390:dfjis
cde:aaa:21311:dfjsid
and, I want the output to be,
sqw:qqq:123124:uiqe... (4 Replies)
Discussion started by: Julius
4 Replies
4. Shell Programming and Scripting
Hi all,
How can I use sed to perform a substitution if the string that I'm going to substitute is stored in a variable:
Let's say:
sed 's/abcdefg/good'
VS
tmp="abcdefg"
sed 's/$tmp/good'
The second case doesn't work. Guess it's due to the single quotes on the outside. How can I... (1 Reply)
Discussion started by: rockysfr
1 Replies
5. Shell Programming and Scripting
My input text has the following pattens:
func_a(3,
4,
5);
I want to replace it with this:
func_b(3,
4,
5,
6);
I'm trying the following expression, but it does not work:
perl -p -e "s/func_a\((.*)?\);/func_b(\1,\n6)/s" <... (8 Replies)
Discussion started by: cooldude
8 Replies
6. Shell Programming and Scripting
Here is the question...
Create a new script, sub2, taking three parameters...
1.) the string to be replaced
2.) the string with which to replace it
3.) the name of the file in which to make the substitution
...that treats the string to be replaced as plain text instead of as a regular... (1 Reply)
Discussion started by: johnhisenburg
1 Replies
7. Shell Programming and Scripting
Hello all,
I am using sed to parse a particular part of a string and am having problems. I am getting the following error:
sed: -e expression #1, char 28: invalid reference \1 on `s' command's RHS
Here is the code I am using:
echo "Alarm SET:"
echo ""
echo "Date: " $DATE
echo... (4 Replies)
Discussion started by: dlundwall
4 Replies
8. UNIX for Dummies Questions & Answers
The thread can be closed now :D. (3 Replies)
Discussion started by: vaz0r
3 Replies
9. Shell Programming and Scripting
I am trying to change a single line of a special file whose comment character is ! to show a path to the file in the comment. such as:
!!HFSS and mcm path: \Signal_Integrity\Package_SI\Section_Models\C4toTrace\28nm\D6HS\SLC_5-2-5\GZ41_ICZ\NSSS\
to a different path and replace the !!HFSS... (1 Reply)
Discussion started by: mobrien601
1 Replies
10. UNIX for Dummies Questions & Answers
i have a text
20 21 22 23 24 25 26
i want to get 22 using sed back reference.
I have used sed 's/{6}\(..\).*/\1/'
but, it does not work.
I am missing something somewhere.
Please help. (5 Replies)
Discussion started by: gotamp
5 Replies
LEARN ABOUT OSF1
acl_copy_ext
acl_copy_ext(3) Library Functions Manual acl_copy_ext(3)
NAME
acl_copy_ext - Copies the ACL from internal working space format to a contiguous, persistent form of the ACL
LIBRARY
Security Library (libpacl.a)
SYNOPSIS
#include <sys/acl.h>
int acl_copy_ext( void *buf_p, acl_t acl_d, ssize_t size);
PARAMETERS
User space to copy the contiguous, persistent for of the ACL into. Specifies the working storage, internal format ACL to copy. Indicates
the size of the buffer pointed to by buf_p.
DESCRIPTION
NOTE: This function is based on Draft 13 of the POSIX P1003.6 standard.
The acl_copy_ext() function copies the contents of the ACL in internal working space format, pointed to by acl_d, into the buffer pointed
to by buf_p. The ACL copied into the buffer is in contiguous, persistent formatxi and is not NULL terminated.
RETURN VALUES
Upon successful completion, the acl_copy_ext function returns the size of the ACL copied. Otherwise, a value of -1 is returned and errno
is set to indicate the error.
ERRORS
If any of the following conditions occur, the acl_copy_ext() function sets errno to the corresponding value:
The size parameter is zero or negative.
The ACL referenced by acl_d contains one or more improperly formed ACL entries, or for some other reason can not be translated into con-
tiguous format.
The size parameter is greater than 0, but smaller than the ACL to be copied.
RELATED INFORMATION
acl_copy_int(3), acl_size(3)
Security delim off
acl_copy_ext(3)