11-13-2007
sed: working with multiple lines
Got another sed question
My text block is
Quote:
10002,9:12/123456789
10002,10:1
10002,11:1
10004,9:12/123456789
10004,10:1
I need to do the following:
If (and only if) the line starting with 10002,11 is followed by a line starting with 10004,9 , insert the line 10003,9 between the 2
Thus, my output should be
Quote:
10002,9:12/123456789
10002,10:1
10002,11:1
10003,9
10004,9:12/123456789
10004,10:1
I tried
Quote:
sed '
/^10002,11/ {
N
/\n.*10004/ a\
10003,9:1
}'
but this gives me
Quote:
10002,9:12/123456789
10002,10:1
10002,11:1
10004,9:12/123456789
10003,9
10004,10:1
(the order is not as i wanted it)
What am I doing wrong?
Thanks once again!
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am trying to use sed to delete multiple lines in a file. The problem is that I need to search for a certain line and then once found delete it plus the next 4 lines. For instance if I had a file that consisted of the following lines:
#Data1.start
(
(Database= data1)
(Name = IPC)... (1 Reply)
Discussion started by: rambo15
1 Replies
2. Shell Programming and Scripting
Hi all,
I am trying to figure out the syntx to delete multiple lines w/ sed. I know the following syntax will delete lines 1 THROUGH 5 from filex:
sed 1,5d filex
But I wan to delete lines 1 AND 5 (keeping lines 2,3, and 4). Does anyone know how to do this in a single sed statement?
... (2 Replies)
Discussion started by: bookoo
2 Replies
3. Shell Programming and Scripting
Hi all:
I have a file in which the contents are as following:
...
This is a test
ONE
TWO
Hello, world!
XXX YYY CCC
test again
three, four
five
six
seven
world
AAA BBB QQQ
test
eight, nine
world (3 Replies)
Discussion started by: xb88
3 Replies
4. Shell Programming and Scripting
I have a file names 'log.txt' that looks something like this:
#This is a comment
/sbin/iptables -A INPUT -p tcp -s ip.of.a machine --destination-port 21 -j ACCEPT
#This is the comment to read#
/sbin/iptables -A INPUT -p tcp -s ip.of.a.machine --destination-port 21 -j ACCEPT
I would like... (1 Reply)
Discussion started by: manouche
1 Replies
5. Shell Programming and Scripting
Before I ask my actual question, is it going to be a problem that I want to run this process on a 15 Gig file that is ~140 million rows?
What I'm trying to do:
I have a file that looks like
Color,Type,Count,Day
Yellow,Full
5
Tuesday
Green,Half
6
Wednesday
Purple,Half
8
Tuesday
...... (3 Replies)
Discussion started by: goldfish
3 Replies
6. Shell Programming and Scripting
I have a file example.txt with content look like this:
<TAG>
1
2
3
</TAG>
and I use a sed command to replace everything between <TAG></TAG> as below:
sed -e 's/\(<TAG>\)*\(<.*\)/something/g' example.txt > example.txt.new
But unfortunately, the command failed to replace as i want, it... (23 Replies)
Discussion started by: dollylamb
23 Replies
7. Shell Programming and Scripting
Hi guys,
anyone know how can i join multiples lines using sed till the end of a file and output to another file in a single line?
The end of each line will be replaced with a special char "#".
I am using the below SED command, however it seems to remove the last 2 lines. Also not all lines... (12 Replies)
Discussion started by: DrivesMeCrazy
12 Replies
8. Shell Programming and Scripting
Hi All,
I have a input file as sample below
<this is not starting of file>
record
line1
line2
line3
end
line4
line5
record
line6
line7
line8
my requirement is this, i want to select a pattern between first record and end, whatever is written between first record and end.
and... (0 Replies)
Discussion started by: adgangwar
0 Replies
9. Shell Programming and Scripting
Hi everybody,
I am writing a little script to manage keystores and need some help with sed.
The output of the keystore file is like:
vi 2, Dec 7, 2012, trustedCertEntry,
Certificate fingerprint (MD5): F9:1F:FE:E6:A3:CB:99:88:44:D4:67:ED:G5:F8:97:7A
system@remote-server, Dec 17, 2013,... (13 Replies)
Discussion started by: Hamss
13 Replies
10. UNIX for Beginners Questions & Answers
I have a text file and i want to run 3 sed commands for the lines entered by the user using perl script. I am doing this manually till now.
need some help with this
The sed commands I have to use are :
sed -i "s/{+//" error.txt
sed -i "s/+}//" error.txt
sed -i "s/\//g" error.txt... (5 Replies)
Discussion started by: utkarshkhanna44
5 Replies
LEARN ABOUT LINUX
shtool-subst
SHTOOL-SUBST.TMP(1) GNU Portable Shell Tool SHTOOL-SUBST.TMP(1)
NAME
shtool-subst - GNU shtool sed(1) substitution operations
SYNOPSIS
shtool subst [-v|--verbose] [-t|--trace] [-n|--nop] [-w|--warning] [-q|--quiet] [-s|--stealth] [-i|--interactive] [-b|--backup ext]
[-e|--exec cmd] [-f|--file cmd-file] [file] [file ...]
DESCRIPTION
This command applies one or more sed(1) substitution operations to stdin or any number of files.
OPTIONS
The following command line options are available.
-v, --verbose
Display some processing information.
-t, --trace
Enable the output of the essential shell commands which are executed.
-n, --nop
No operation mode. Actual execution of the essential shell commands which would be executed is suppressed.
-w, --warning
Show warning on substitution operation resulting in no content change on every file. The default is to show a warning on substitution
operations resulted in no content change on all files.
-q, --quiet
Suppress warning on substitution operation resulting in no content change.
-s, --stealth
Stealth operation. Preserve timestamp on file.
-i, --interactive
Enter interactive mode where the user has to approve each operation.
-b, --backup ext
Preserve backup of original file using file name extension ext. Default is to overwrite the original file.
-e, --exec cmd
Specify sed(1) command directly.
-f, --file cmd-file
Read sed(1) command from file.
EXAMPLE
# shell script
shtool subst -i -e 's;(c) ([0-9]*)-2000;(c) 1-2001;' *.[ch]
# RPM spec-file
%install
shtool subst -v -n
-e 's;^(prefix=).*;1 $RPM_BUILD_ROOT%{_prefix};g'
-e 's;^(sysconfdir=).*;1 $RPM_BUILD_ROOT%{_prefix}/etc;g'
`find . -name Makefile -print`
make install
HISTORY
The GNU shtool subst command was originally written by Ralf S. Engelschall <rse@engelschall.com> in 2001 for GNU shtool. It was prompted
by the need to have a uniform and convenient patching frontend to sed(1) operations in the OpenPKG package specifications.
SEE ALSO
shtool(1), sed(1).
18-Jul-2008 shtool 2.0.8 SHTOOL-SUBST.TMP(1)