Sponsored Content
Top Forums Shell Programming and Scripting search and replace, when found, delete multiple lines, add new set of lines? Post 302576058 by DeuceLee on Wednesday 23rd of November 2011 01:39:12 PM
Old 11-23-2011
search and replace, when found, delete multiple lines, add new set of lines?

hey guys,

I tried searching but most 'search and replace' questions are related to one liners.

Say I have a file to be replaced that has the following:

Code:
$ cat testing.txt
TESTING
AAA
BBB
CCC
DDD
EEE
FFF
GGG
HHH
ENDTESTING

This is the input file:

Code:
$ cat input.txt
RRR
SSS
TTT

What I want to do is, search testing.txt for "EEE". When I find "EEE", I want to delete "EEE" and two lines below it ending in "GGG". I want to replace "EEE" through "GGG" with the input.txt file. So the ending results will look like:

Code:
$ cat testing.txt
TESTING
AAA
BBB
CCC
DDD
RRR
SSS
TTT
HHH
ENDTESTING

I know how to search for single lines of code and replace that line with something else.

How do I say "find this line, delete three lines down, replace it with text from this input file"?

thanks.

---------- Post updated at 02:39 PM ---------- Previous update was at 02:32 PM ----------

I spoke too soon. I did find this post:

It's the very last post of the thread. I'll try that.

Sorry, this should have been in the "Dummies" subforum too. Smilie
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delete a block of text delimited by blank lines when pattern is found

I have a file which contains blocks of text - each block is a multi-lines text delimited by blank lines eg. <blank line> several lines of text ... pattern found on this line several more lines of text ... <blank line> How do you delete the block of text (including the blank lines) when... (17 Replies)
Discussion started by: gleu
17 Replies

2. Shell Programming and Scripting

search 2 lines and delete above line

Hi, I've been searching in this forum for the last 4 hours trying to do one thing: search 2 lines and delete the above line. So far I have not be able to find something similar in this forum, so I need help. This is what I'm trying to do. For example, I have a file called file1: file1 word1... (4 Replies)
Discussion started by: shamushamu
4 Replies

3. Shell Programming and Scripting

Multiple lines into one line when ; is found

I have sql's in a file separated by ";", need to put the sql in one single line till i find a ";" The input file is like this SELECT s.sid, s.serial#, p.spid as "OS PID", s.username, s.module, ... (6 Replies)
Discussion started by: ilugopal
6 Replies

4. Shell Programming and Scripting

Search in a set of lines using perl

Hi Experts, i am beginner in perl and need your help to find a solution.. I have a block of multiple lines like below say module 1 to module 100 ***** MAKING > module1 ************** kvmfkvmmfdv svksmnvlksmfvks dcsdvcs sddvcsv ssvsdvdf error: abcdefghi wrw wvsv dsvds sdvsd error:... (5 Replies)
Discussion started by: ganga.dharan
5 Replies

5. Shell Programming and Scripting

Print lines after the search string until blank line is found

All I want is to look for the pattern in the file...If I found it at # places... I want print lines after those pattern(line) until I find a blank line. Log EXAMPLE : MT:Exception caught The following Numbers were affected: 1234 2345 2346 Error java.lang.InternalError:... (3 Replies)
Discussion started by: prash184u
3 Replies

6. Shell Programming and Scripting

search and delete the lines in a file

HI group members I am new in unix I want to search # symbol in a file. if found need to delete the entire row in the file. need to move the actual data(with out # symbol data) to another file. Thanks (2 Replies)
Discussion started by: pmreddy
2 Replies

7. Shell Programming and Scripting

Delete a set of lines from a file

Hi All, Am very new for this Shell scripting. Could anyone pls let me know how to delete a set of lines from a (.DAT) file using ksh script. for example from line 3 to line 7. The size of the target file is huge:( ---------- Post updated at 11:01 PM ---------- Previous update was at 11:00 PM... (5 Replies)
Discussion started by: kasthu12
5 Replies

8. Shell Programming and Scripting

Deleting Multiple Lines in a File1 using critera found from File 2

Hi Everyone! I would like ask if there's a better way I can delete multiple lines in a file1 by collecting all criteria from file2. file1: a b c d e f file2: a e f The expected value will be: b (3 Replies)
Discussion started by: zzavilz
3 Replies

9. Shell Programming and Scripting

Search a character and replace it with multiple lines

This is for AIX 6.1, I've a flat file and the format is like this DECLARE some statements; BEGIN some statements; END; I've to search BEGIN and replace it with the following 4 lines BEGIN For x in 1..1 LOOP BEGIN Similarly I've to search END and replace it with the... (7 Replies)
Discussion started by: Mukul Sharma
7 Replies

10. UNIX for Beginners Questions & Answers

Delete multiple lines between blank lines containing two patterns

Hi all, I'm looking for a way (sed or awk) to delete multiple lines between blank lines containing two patterns ex: user: alpha parameter_1 = 15 parameter_2 = 1 parameter_3 = 0 user: alpha parameter_1 = 15 parameter_2 = 1 parameter_3 = 0 user: alpha parameter_1 = 16... (3 Replies)
Discussion started by: ce9888
3 Replies
dseditgroup(8)						    BSD System Manager's Manual 					    dseditgroup(8)

NAME
dseditgroup -- group record manipulation tool. SYNOPSIS
dseditgroup [options] [parameters] groupname options: -o operation perform (read, create, delete, edit, checkmember) operation with given groupname -p prompt for authentication password -q disables interactive verification -v verbose logging to stdout parameters: -m member username to use for checkmember option -n nodename directory node location of group record -u username authenticate with admin username -P password authentication password -a recordname name of the record to add -d recordname name of the record to delete -t recordtype type of the record to add or delete -T grouptype type of group to create or modify -L maintain ComputerLists in parallel with ComputerGroups -i gid gid to add/replace -g guid GUID to add/replace -S sid SID to add/replace -r realname realname to add/replace -k keyword keyword to add -c comment comment to add/replace -s timetolive seconds to live to add/replace -f n | l change the group's format - 'n' for the new group format and 'l' for the legacy group format DESCRIPTION
dseditgroup allows manipulation of a single named group record on either the default local node or the specified DirectoryService node. For the "read" operation the authentication search policy (/Search node) is consulted. Default behaviour is presented below after a discussion of each operation and the possible parameters. Options and their descriptions: -o operation If "read" then the parameters of the specified groupname will be displayed. This is the default option. The authentication search policy (/Search node) will be used. If "create" then create a group with the specified groupname on either the default local node or the specified DirectoryService node. If "delete" then delete a group with the specified groupname on either the default local node or the specified DirectoryService node. If "edit" then edit a group with the specified groupname on either the default local node or the specified DirectoryService node. If "checkmember" then check if the user specified with -m or current logged in user is a member of the specified groupname. The authentication search policy (/Search node) is used to find the member. The specified node (defaults to the authentication search policy) is used to find the group. If the specified node is not on the authentication search policy the behaviour is undefined. -p You will be prompted for a password to use in conjunction with the specified username. -q This disables interactive verification of replace or delete operations. -v This enables the logging of the DirectoryService API calls and their return codes. Parameters and their descriptions: -m member The username of the account to verify group membership when using -o checkmember -n nodename Directory Service node name such as /LDAPv3/ldap.company.com and whose default value is the local node. "." can also be used to specify the local node. -u username Username of a user that has administrative privileges on this computer. -P password Password to use in conjunction with the specified username. If this is not specified, you will be prompted for a password. -a recordname The name of the record to be added to the group specified by groupname. This name is related to the first record found on the authentication search policy when a search is made with this recordname and the given recordtype. -d recordname The name of the record to be deleted from the group specified by groupname. This name is related to the first record found on the authentication search policy when a search is made with this recordname and the given recordtype. -t recordtype The type of the record to be added to or deleted from the group specified by groupname. Valid values are user, computer, group, or computergroup. -T grouptype The type of the group record to be created or modified as specified by groupname. Valid values are group or computergroup. -L If used with computergroup will also maintain the computerlist if it exists or create it if a computergroup is created. -i gid This is a group id. This will be automatically created if not specified for a create. -g guid This is a text representation of an 128 bit id. This will be automatically created if not specified for a create. -r realname This is a simple text string. -k keyword This is a simple text string. -c comment This is a simple text string. -s timetolive The number of seconds that this record is deemed valid as a cached value. There will be no automatically created default value if not specified for a create. DEFAULT BEHAVIOUR
dseditgroup mygroup This simple version of the command will default to: dseditgroup -o read -n . -u $USER mygroup The output will be the parameters of the "mygroup" group record if the shell user has read access to the local node's group record of name "mygroup". EXAMPLES
dseditgroup extragroup dseditgroup -o read extragroup The attributes of the group extragroup from the local node are displayed. dseditgroup -o create -n /LDAPv3/ldap.company.com -u myusername -P mypassword -r "Extra Group" -c "a nice comment" -s 3600 -k "some keyword" extragroup The group extragroup is created from the node /LDAPv3/ldap.company.com with the realname, comment, timetolive (instead of default of 14400 = 4 hours), and keyword atttribute values given above if the user myusername has supplied a correct password and has write access. dseditgroup -o delete -n /LDAPv3/ldap.company.com -u myusername -P mypassword extragroup The group extragroup is deleted from the node /LDAPv3/ldap.company.com if the user myusername has supplied a correct password and has write access. dseditgroup -o edit -n /LDAPv3/ldap.company.com -u myusername -p -a username -t user extragroup The group extragroup from the node /LDAPv3/ldap.company.com will have the username added if the username is in a user record on the search policy and if the correct password is presented interactively for the user myusername which also need to have write access. dseditgroup -o edit -n /LDAPv3/ldap.company.com -u myusername -P -a mysubgroup -t group extragroup The group extragroup from the node /LDAPv3/ldap.company.com will have the mysubgroup added if the mysubgroup is in a group record on the search policy and if the user myusername has supplied a correct password and has write access. dseditgroup -o edit -n /LDAPv3/ldap.company.com -u myusername -p -d username -t user extragroup The group extragroup from the node /LDAPv3/ldap.company.com will have the username deleted if the correct password is presented interactively for the user myusername which also need to have write access. dseditgroup -o checkmember extragroup Will write out a message specifying if the current user is a member of extragroup on the authentication search policy. dseditgroup -o checkmember -n . extragroup Will write out a message specifying if the current user is a member of extragroup on the local node. dseditgroup -n /LDAPv3/ldap.company.com -o checkmember -m user extragroup Will write out a message specifying if user (found in /Search) is a member of extragroup on the specified node /LDAPv3/ldap.company.com. The specified node /LDAPv3/ldap.company.com needs to be on the authentication search policy for a valid answer. Mac OS March 01 2004 Mac OS
All times are GMT -4. The time now is 04:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy