Sponsored Content
Top Forums Shell Programming and Scripting Grep for string, but within mentioned bounds Post 302965456 by jamie_123 on Friday 29th of January 2016 09:20:27 AM
Old 01-29-2016
Grep for string, but within mentioned bounds

Hi,

I've been trying to filter a file which has several repetitions of lines which looks as follows:

Code:
('hello
My name is
jamie
blabla
xyz>>)

Each line has different values in them. I want grep or awk or sed to treat everything within the (' and >>) as one line and then filter for a single word, for example jamie.

Any ideas how to do this?

PS:

I had tried a solution based on the following awk '/START:/{if (NR!=1)print "";next}{print $0}END{print "";}. However, the output still seems to be in separate lines...

I above gives me a solution as follows:

Code:
My name is
jamie
blabla
xyz>>)

My name is
joan
blabla
blabla
xyz>>)

Is there an easy way to merge lines not separated by a blank line into a single line?
Thanks.

Last edited by jamie_123; 01-29-2016 at 10:50 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

crontab: error on previous line; number out of bounds.

Hi, I am trying to set up a cron job for every Friday at 6:00 p.m. and got an error: "/var/tmp/aaaa29638" 1 line, 73 characters 00 18 00 0 5 /app/test/backup.ksh crontab: error on previous line; number out of bounds. Any ideas? Thanks! (1 Reply)
Discussion started by: oradbus
1 Replies

2. Programming

how to avoid the segfault from Address 0x1cd00000103 out of bounds

After allocating memory for some variables, segfault is often to happen, due to the same reason: Address 0x1cd00000103 out of bounds It is welcome to recommend some treatments. Thanks e.g. is_done = 0x1cd00000103 <Address 0x1cd00000103 out of bounds>, hood = 0x23c00000247, c =... (11 Replies)
Discussion started by: cdbug
11 Replies

3. Programming

array bounds and mem leak tool

Is there any freeware to find out array bounds static and dynamic ways in Solaris 10. (1 Reply)
Discussion started by: satish@123
1 Replies

4. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

5. Shell Programming and Scripting

Grep a string from input file and delete next three lines including the line contains string in xml

Hi, 1_strings file contains $ cat 1_strings /home/$USER/Src /home/Valid /home/Review$ cat myxml <projected value="some string" path="/home/$USER/Src"> <input 1/> <estimate value/> <somestring/> </projected> <few more lines > <projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies

6. Shell Programming and Scripting

grep exact string from files and write to filename when string present in file

I am attempting to grep an exact string from a series of files within a directory and append that output to the filename when it is present in the file. I've been after this all day with no luck. Thanks for your help in advance :wall:. (4 Replies)
Discussion started by: JC_1
4 Replies

7. Shell Programming and Scripting

Grep string in files and list file names that contain the string

Hi, I have a list of zipped files. I want to grep for a string in all files and get a list of file names that contain the string. But without unzipping them before that, more like using something like gzcat. My OS is: SunOS test 5.10 Generic_142900-13 sun4u sparc SUNW,SPARC-Enterprise (8 Replies)
Discussion started by: apenkov
8 Replies

8. Shell Programming and Scripting

Grep for all ip addresses mentioned in all files in a Directory

I wish to traverse all files and folders under a given directory say "/tmp/configuration" and for all ip address mentioned therein. I tried find ./ -type f | xargs grep "*.*.*.*" but it does not populated the correct results. Can you please suggest. (1 Reply)
Discussion started by: mohtashims
1 Replies

9. UNIX for Beginners Questions & Answers

Can I combine below mentioned grep commands using OR (when searching strings having spaces)

Command 1: $script | grep 'Write to ECC( SSID=MARGIN)' Command 2: $script | grep 'is not greater than existing logical processing' The above commands run my script and search the mentioned strings but I do not want to run my script twice. It is increasing run time. Can someone tell me... (3 Replies)
Discussion started by: Tanu
3 Replies

10. Programming

-Warray-bounds option to GCC compiler

What exactly is the -Warray-bounds option to the GCC compiler supposed to warn about? the man page states: ~ g++ --version g++ (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) Copyright (C) 2017 Free Software Foundation, Inc.Thank you. (14 Replies)
Discussion started by: milhan
14 Replies
awk(1)							      General Commands Manual							    awk(1)

Name
       awk - pattern scanning and processing language

Syntax
       awk [-Fc] [-f prog] [-] [file...]

Description
       The  command scans each input file for lines that match any of a set of patterns specified in prog.  With each pattern in prog there can be
       an associated action that will be performed when a line of a file matches the pattern.  The set of patterns may appear literally  as  prog,
       or in a file specified as -f prog.

       Files  are  read  in  order;  if there are no files, the standard input is read.  The file name `-' means the standard input.  Each line is
       matched against the pattern portion of every pattern-action statement; the associated action is performed for each matched pattern.

       An input line is made up of fields separated by white space.  (This default can be changed by using FS, as described  below.)   The  fields
       are denoted $1, $2, ... ; $0 refers to the entire line.

       A pattern-action statement has the form

	    pattern { action }

       A missing { action } means print the line; a missing pattern always matches.

       An action is a sequence of statements.  A statement can be one of the following:

	    if ( conditional ) statement [ else statement ]
	    while ( conditional ) statement
	    for ( expression ; conditional ; expression ) statement
	    break
	    continue
	    { [ statement ] ... }
	    variable = expression
	    print [ expression-list ] [ >expression ]
	    printf format [ , expression-list ] [ >expression ]
	    next # skip remaining patterns on this input line
	    exit # skip the rest of the input

       Statements  are terminated by semicolons, new lines or right braces.  An empty expression-list stands for the whole line.  Expressions take
       on string or numeric values as appropriate, and are built using the operators +, -, *, /, %,  and concatenation	(indicated  by	a  blank).
       The  C operators ++, --, +=, -=, *=, /=, and %= are also available in expressions.  Variables may be scalars, array elements (denoted x[i])
       or fields.  Variables are initialized to the null string.  Array subscripts may be any string, not necessarily numeric; this allows  for  a
       form of associative memory.  String constants are quoted "...".

       The  print  statement prints its arguments on the standard output (or on a file if >file is present), separated by the current output field
       separator, and terminated by the output record separator.  The statement formats its expression list according to the format.  For  further
       information, see

       The  built-in  function	length	returns the length of its argument taken as a string, or of the whole line if no argument.  There are also
       built-in functions exp, log, sqrt, and int.  The last truncates its argument to an integer.  substr(s, m, n) returns the  n-character  sub-
       string  of  s that begins at position m.  The function sprintf(fmt, expr, expr, ...)  formats the expressions according to the format given
       by fmt and returns the resulting string.

       Patterns are arbitrary Boolean combinations (!, ||, &&, and parentheses)  of  regular  expressions  and	relational  expressions.   Regular
       expressions  must be surrounded by slashes and are as in egrep.	Isolated regular expressions in a pattern apply to the entire line.  Regu-
       lar expressions may also occur in relational expressions.

       A pattern may consist of two patterns separated by a comma; in this case, the action is performed for all lines between	an  occurrence	of
       the first pattern and the next occurrence of the second.

       A relational expression is one of the following:

	    expression matchop regular-expression
	    expression relop expression

       where a relop is any of the six relational operators in C, and a matchop is either ~ (for contains) or !~ (for does not contain).  A condi-
       tional is an arithmetic expression, a relational expression, or a Boolean combination of these.

       The special patterns BEGIN and END may be used to capture control before the first input line is read and after the last.   BEGIN  must	be
       the first pattern, END the last.

       A single character c may be used to separate the fields by starting the program with

	    BEGIN { FS = "c" }

       or by using the -Fc option.

       Other  variable	names  with special meanings include NF, the number of fields in the current record; NR, the ordinal number of the current
       record; FILENAME, the name of the current input file; OFS, the output field separator (default blank); ORS,  the  output  record  separator
       (default new line); and OFMT, the output format for numbers (default "%.6g").

Options
       -	 Used for standard input file.

       -Fc	 Sets interfield separator to named character.

       -fprog	 Uses prog file for patterns and actions.

Examples
       Print lines longer than 72 characters:
	    length > 72

       Print first two fields in opposite order:
	    { print $2, $1 }

       Add up first column, print sum and average:
		 { s += $1 }
	    END  { print "sum is", s, " average is", s/NR }

       Print fields in reverse order:
	    { for (i = NF; i > 0; --i) print $i }

       Print all lines between start/stop pairs:
	    /start/, /stop/

       Print all lines whose first field is different from previous one:
	    $1 != prev { print; prev = $1 }

Restrictions
       There  are  no explicit conversions between numbers and strings.  To force an expression to be treated as a number add 0 to it; to force it
       to be treated as a string concatenate "" to it.

See Also
       lex(1), sed(1)
       "Awk - A Pattern Scanning and Processing Language" ULTRIX Supplementary Documents Vol. II: Programmer

																	    awk(1)
All times are GMT -4. The time now is 05:54 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy