Sponsored Content
Top Forums Shell Programming and Scripting multi line multirecord find and replace Post 302328897 by durden_tyler on Thursday 25th of June 2009 11:48:35 AM
Old 06-25-2009
Quote:
Originally Posted by cdc01
...
basically each of the 2 above are the records. There are 2500 of them to be done.
1) I guess to cut the first line and extract the variable needed eg (Marquisd)

2)locate the end of the second line and insert the extra line to be added
3) locate the text on the end line (after the last slash) and replace this data with the entry obtained from the varialbe above
4) repeat for all the records, and end
...
Code:
$
$ cat file1
dn: cn=MarquisA,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
ndsHomeDirectory: cn=APMMTL02F25_MRC1,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\REPLACEHERE
dn: cn=MarquisB,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
ndsHomeDirectory: cn=APMMTL02F25_MRC2,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\REPLACEHERE
dn: cn=MarquisC,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
ndsHomeDirectory: cn=APMMTL02F25_MRC3,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\REPLACEHERE
dn: cn=MarquisD,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
ndsHomeDirectory: cn=APMMTL02F25_MRC4,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\REPLACEHERE
$
$ perl -ne 'BEGIN {$x="### INSERT LINE HERE ###\n"}
>   { if (/^dn: cn=(.*?),/) {$cn=$1; $done=0}
>     elsif (/^changetype:/) {$_ .= $x}
>     elsif (!/HomeDirectory/ && $done==0) {s/\\.*$/\\$cn/; $done=1}
>     print
>   }' file1
dn: cn=MarquisA,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
### INSERT LINE HERE ###
ndsHomeDirectory: cn=APMMTL02F25_MRC1,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\MarquisA
dn: cn=MarquisB,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
### INSERT LINE HERE ###
ndsHomeDirectory: cn=APMMTL02F25_MRC2,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\MarquisB
dn: cn=MarquisC,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
### INSERT LINE HERE ###
ndsHomeDirectory: cn=APMMTL02F25_MRC3,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\MarquisC
dn: cn=MarquisD,ou=PTG,ou=MTL,ou=QUE,o=ASDASD
changetype: modify
### INSERT LINE HERE ###
ndsHomeDirectory: cn=APMMTL02F25_MRC4,ou=SVR,ou=MTL,ou=QUE,o=ASDASD# 0#USAGERS\
TVG\MarquisD
$
$

tyler_durden
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search and replace multi-line text in files

Hello I need to search for a mult-line text in a file exfile1 and replace that text with another text. The text to search for is in exfile2 and the replacement text is in exfile3. I work with kornshell under AIX and need to do this with a lot of files. (the file type is postscript and they need... (10 Replies)
Discussion started by: marz
10 Replies

2. Shell Programming and Scripting

Multi-Line Search and Replace

There appears to be several threads that touch on what I'm trying to do, but nothing quite generic enough. What I need to do is search through many (poorly coded) HTML files and make changes. The catch is that my search string may be on one line or may be on several lines. For example there... (5 Replies)
Discussion started by: bisbell
5 Replies

3. Shell Programming and Scripting

Global search and replace multi line file

Hello I need to search for a mult-line strngs(with spaces in between and qoted) in a file1 and replace that text with Fixed string globally in file1. The strng to search for is in file2. The file is big with some 20K records. so speed and effciency is required file1: (where srch & rplc... (0 Replies)
Discussion started by: Hiano
0 Replies

4. UNIX for Dummies Questions & Answers

find/xargs/*grep: find multi-line empty "try-catch" blocks - eg, missing ; not in a commented block

How can I recursively find all files in a directory and print out the file and first line number of any text blocks that match the below cases? This would seem to involve find, xargs, *grep, regex, etc. In summary, I want to find so-called empty "try-catch blocks" that do not contain code... (0 Replies)
Discussion started by: lifechamp
0 Replies

5. Shell Programming and Scripting

Multi-line filtering based on multi-line pattern in a file

I have a file with data records separated by multiple equals signs, as below. ========== RECORD 1 ========== RECORD 2 DATA LINE ========== RECORD 3 ========== RECORD 4 DATA LINE ========== RECORD 5 DATA LINE ========== I need to filter out all data from this file where the... (2 Replies)
Discussion started by: Finja
2 Replies

6. Shell Programming and Scripting

SED - insert space at the beginning of line and multi replace command

hi I am trying to use SED to replace the line matching a pattern using the command sed 'pattern c\ new line ' <file1 >file 2 I got two questions 1. how do I insert a blank space at the beginning of new line? 2. how do I use this command to execute multiple command using the -e... (5 Replies)
Discussion started by: piynik
5 Replies

7. Shell Programming and Scripting

sed to replace a line with multi lines from a var

I am trying to find a line in a file ("Replace_Flag") and replace it with a variable which hold a multi lined file. myVar=`cat myfile` sed -e 's/Replace_Flag/'$myVar'/' /pathto/test.file myfile: cat dog boy girl mouse house test.file: football hockey Replace_Flag baseball ... (4 Replies)
Discussion started by: bblondin
4 Replies

8. Shell Programming and Scripting

Replace a multi-line strings or numbers

Hi I have no experience in Unix so any help would be appreciated I have the flowing text 235543 123 45654 199 225 578 45654 199 225 I need to find this sequence from A file 45654 199 225 (22 Replies)
Discussion started by: khaled79
22 Replies

9. Shell Programming and Scripting

Multi line regex for search and replace

I have text file like below: a.txt Server=abc Run=1 Time=120.123 Tables=10 Sessions=16 Time=380.123 Version=1.1 Jobs=5 Server=abc Run=2 Time=160.123 Tables=15 Sessions=16 Time=400.258 Version=2.0 (1 Reply)
Discussion started by: sol_nov
1 Replies

10. Shell Programming and Scripting

How to find all the multi line pattern and redirecting it to a file?

I've a file like this {multi line ....... ....... pattern} { some other stuff ......... } {multi line ....... ....... pattern} { some other stuff ......... } and so on (2 Replies)
Discussion started by: aamir_raihan
2 Replies
PAM-SCRIPT(7)						 Miscellaneous Information Manual					     PAM-SCRIPT(7)

NAME
pam-script - a PAM module that can invoke scripts within the PAM stack. SYNOPSIS
pam-script.so [onerr=(success|fail)][dir=/some/path/] DESCRIPTION
pam-script allows you to execute scripts during authorization, passwd changes, and on session opening or closing. Such scripts can perform necessary tasks or influence the outcome of the PAM stack. For example, if the following entry was included in pam.conf sshd auth required pam_script then if the script, pam_script_auth, exits with a non-zero value this would cause the user to be denied SSH access to the machine. OPTIONS
A summary of options is included below. onerr=(success|fail) the default behavior if the module can not find or execute the script. The default is to fail if the option is not given. dir=/some/path/ where to find the pam-scripts to invoke for each of the various module-types as described below. The default is dir=/usr/share/lib- pam-script if not given. List of scripts pam_script_auth Executed under auth which handles the authentication stage of establishing the user via some challenge-response (i.e. username/pass- word) pam_script_acct invoked under account module-type for non-authentication based account management. pam_script_passwd invoked under passwd for changing the password tokens. pam_script_ses_open invoked when a session is first opened. pam_script_ses_close run after a session is first closed. All the scripts will be passed several environment variables: PAM_USER, PAM_RUSER, PAM_RHOST, PAM_SERVICE, PAM_AUTHTOK, PAM_TTY, and PAM_TYPE referring to the module-type. The pam_script.so arguments in the pam.conf will be passed on the command line, which can be used to modify the script behavior. FILES
/lib/security/pam_script.so - the PAM module /usr/share/libpam-script - where the scripts should be placed by default VERSION
pam-script 1.1.5 SEE ALSO
PAM(7) and the PAM "The System Administrators' Guide" AUTHOR
pam-script was written by Jeroen Nijhof <jeroen@jeroennijhof.nl> with some additions and modifications by R.K. Owen, Ph.D. <rkowen@nersc.gov>. This manual page was written by R.K. Owen <rkowen@nersc.gov>, for the Debian project (but may be used by others). August 22, 2007 PAM-SCRIPT(7)
All times are GMT -4. The time now is 06:54 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy