09-19-2009
sed before and after regexp
Dear all
i have the code which print 1 line of context before and after regexp, with line number
sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h
the code work well but any one can tell me what each letter mean {=;x;1!p;g;$!N;p;D;}
also how i can print 2 line before and onle line after or 3 lines before and two line after etc ...
thank you all
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I am using GnuWin32 sed and am having trouble with the regexp - i.e., they don't behave the same way as in UNIX (POSIX and and all that). I have a stream of data, e.g.:
11111'222?'22'33?'333'44444'55555'
I want to insert a \n after those apostrophes that are *not* preceded by a ?.
... (2 Replies)
Discussion started by: Simerian
2 Replies
2. Shell Programming and Scripting
please help:
I want to add 1 space between string and numbers:
input file:
abcd12345
output file:
abcd 1234
The following sed command does not work:
sed 's/\(+\)\(+\)/\1 \2/' file
Any ideas, please
Andy (2 Replies)
Discussion started by: andy2000
2 Replies
3. Shell Programming and Scripting
Basically it should identify what ever is in between /*< >*/ (tags) and replace dbname ending with (.) with the words in between the tags
i.e.
DELETE FROM /*<workDB>*/epd_test./*<multi>*//*<version>*/epd_tbl1 ALL; into
DELETE FROM... (4 Replies)
Discussion started by: sol_nov
4 Replies
4. Shell Programming and Scripting
Hi all,
I have one question regarding sed regexp (or any regexp in general),
I have some path like this
C:/Abc/def/ghi/jkl in a file file1
Now if i use following code
cat file1 | sed 's#\(.*\)/.*#\1#'
Now it give me following output
C:/Abc/def/ghi, which is fine
But i just... (2 Replies)
Discussion started by: sarbjit
2 Replies
5. Shell Programming and Scripting
Hi,
I am not that good with reg exp and sed. But I was just looking at something the other day and came across a situation.
When I ran the below command:
echo "123 word" | sed 's/*/(&)/'
the op was:
(123) word
But when I ran:
echo "123 word" | sed 's/*/(&)/g'
the o/p was:
(123)... (4 Replies)
Discussion started by: King Nothing
4 Replies
6. Shell Programming and Scripting
Hi!
I have a file with multiple lines following this format:
<a href="xxx.aaa_bbb_ccc.yyy">xxx.aaa_bbb_ccc.yyy</a>
The goal is to replace the title (not modifying the href) so the new lines looks like this:
<a href="xxx.aaa_bbb_ccc.yyy">Aaa bbb ccc</a>
The number of underscores in the... (2 Replies)
Discussion started by: ericjohansson
2 Replies
7. Shell Programming and Scripting
Dealing with Linux servers
script would be in korn or bash shell syntax
file is /etc/fstab
I want to insert something if regex is matched to all matched lines in the /etc/fstab file and print out entire /etc/fstab file with the changes
example
58.228.111.111:/my/file/system... (5 Replies)
Discussion started by: snoman1
5 Replies
8. Shell Programming and Scripting
Hi everyone, I would really appreciate any help I could get on the following topic.
I am not very familiar with reg expressions nor with sed, I just know the basic uses. What I am trying to do is the following: I have a huge text file where I would like to replace all occurnces of a certain... (13 Replies)
Discussion started by: Boxtuna
13 Replies
9. Shell Programming and Scripting
G'day,
Here's a teaser for a sed guru, which I surely am not one, as even my
basic sed skills are rusted from years of not practising ... lol
Ok ... we have a string of digits such as:
632413741610252847552619172459483022433027602515212950543016701812771409213148672112
we want it split... (9 Replies)
Discussion started by: naderra
9 Replies
10. UNIX for Beginners Questions & Answers
OFF 00280456 - 2014|1|2020_STATUS|GROUP_NAME|SUBGROUP_NAME|CLASS_NAME|GROUP_ID|SUBGROUP_ID
I have above header in file. I need to replace 2020_STATUS with STATUS.
2020_STATUS is not always same but the column name will have STATUS all of the time. For instance column name might be 2019_STATUS... (1 Reply)
Discussion started by: jmadhams
1 Replies
LEARN ABOUT MOJAVE
csplit
CSPLIT(1) BSD General Commands Manual CSPLIT(1)
NAME
csplit -- split files based on context
SYNOPSIS
csplit [-ks] [-f prefix] [-n number] file args ...
DESCRIPTION
The csplit utility splits file into pieces using the patterns args. If file is a dash ('-'), csplit reads from standard input.
The options are as follows:
-f prefix
Give created files names beginning with prefix. The default is ``xx''.
-k Do not remove output files if an error occurs or a HUP, INT or TERM signal is received.
-n number
Use number of decimal digits after the prefix to form the file name. The default is 2.
-s Do not write the size of each output file to standard output as it is created.
The args operands may be a combination of the following patterns:
/regexp/[[+|-]offset]
Create a file containing the input from the current line to (but not including) the next line matching the given basic regular
expression. An optional offset from the line that matched may be specified.
%regexp%[[+|-]offset]
Same as above but a file is not created for the output.
line_no
Create containing the input from the current line to (but not including) the specified line number.
{num} Repeat the previous pattern the specified number of times. If it follows a line number pattern, a new file will be created for each
line_no lines, num times. The first line of the file is line number 1 for historic reasons.
After all the patterns have been processed, the remaining input data (if there is any) will be written to a new file.
Requesting to split at a line before the current line number or past the end of the file will result in an error.
ENVIRONMENT
The LANG, LC_ALL, LC_COLLATE and LC_CTYPE environment variables affect the execution of csplit as described in environ(7).
EXIT STATUS
The csplit utility exits 0 on success, and >0 if an error occurs.
EXAMPLES
Split the mdoc(7) file foo.1 into one file for each section (up to 20):
csplit -k foo.1 '%^.Sh%' '/^.Sh/' '{20}'
Split standard input after the first 99 lines and every 100 lines thereafter:
csplit -k - 100 '{19}'
SEE ALSO
sed(1), split(1), re_format(7)
STANDARDS
The csplit utility conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
HISTORY
A csplit command appeared in PWB UNIX.
BUGS
Input lines are limited to LINE_MAX (2048) bytes in length.
BSD
January 26, 2005 BSD