04-27-2004
Driver,
My point was that in awk you can use start/end pairs. i.e. two patterns or conditions sepated by a comma. All you have to do is determine what the conditions are.
My post works with the sample supplied. But with the sample you have supplied, the end condition might be "/^}$/" , i.e. a line that is one "}" on its own with no whitespace. So you would have...
awk '/sub foo/,/^}$/' file
...which could be the simplest solution, but perhaps more work is needed.
It would be more efficient to use "exit" to stop reading the file when the end condition is reached. The idea of counting matched braces can be coded more simply as ....
awk '/sub foo/,0 {print;b+=gsub("\{","{");b-=gsub("\}","}");if(b==0)exit}' file
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
This is truly dummy question.
I have a text file of 100 lines.
What unix commnad to extract line 20 to 40 and output it to another file?
Is it something cat or grep or >> ?
Thanks (6 Replies)
Discussion started by: champion
6 Replies
2. Shell Programming and Scripting
Hi,
I am using the Korn shell script to display lines of the file. For example below:
outputfile=test.dat
-- display each line of the test.dat file
abcd 345
adek 45566
dve3 34565
so on...
I appreciate your time to find a command for displaying lines of the file on the log.
... (2 Replies)
Discussion started by: sbryant
2 Replies
3. Shell Programming and Scripting
Hi
to all in this great forum, im sure this has been asked lots of times before but ive been looking for the past day and cant find the answer.
I use cat/some/file to display its contents but how can i get it to not display hashed out lines, or do i need another command,
Thanks in advance:) (5 Replies)
Discussion started by: dave123
5 Replies
4. Shell Programming and Scripting
I have to grep on a few words in a file and then display the line containing those words and the line above it.
For ex -
File1.txt contains...
abc xyz abc
This is a test
Test successful
abc xyz abc
Just a test
Test successful
I find the words 'Test successful' in the file... (6 Replies)
Discussion started by: user7617
6 Replies
5. Shell Programming and Scripting
Hi!
I'm trying to create a shell script to parse a file which might have multiple lines matching a pattern (i.e. containing some word).
I need to return all lines matching the pattern, but stripping the contents of that line until the pattern is matched
For example, if my input file was
... (4 Replies)
Discussion started by: orno
4 Replies
6. UNIX for Dummies Questions & Answers
how do i Display only the first two characters of all the lines from a file.? (1 Reply)
Discussion started by: ritusubash
1 Replies
7. UNIX Desktop Questions & Answers
a. How do I display the content of the file containing what Ive merged using a filter which would display only the lines of the file which don't contain number, for example 3 or 6. (3 Replies)
Discussion started by: herberwz
3 Replies
8. UNIX for Dummies Questions & Answers
I have a bunch of files in various folders. I want to go through each of them and display certain lines in a particular format
All files have a similar format
Date:
Time:
User:
Message:
Miscellaneous:
(and some other stuff)I want to display to only the "Date:", "Time:" "User:" lines in... (7 Replies)
Discussion started by: newbiegal01
7 Replies
9. Shell Programming and Scripting
Hell,
I want to grep certain word from file and display above 2 lines and after two lines.
Here is the content of sample file.
Mar 14, 2013 12:56:59 AM Agent.Agent SendTo
INFO: Connection to server:7041 - Credential Transmit Successesful
Mar 14, 2013 8:54:21 AM cgent SendTo
WARNING:... (7 Replies)
Discussion started by: balareddy
7 Replies
10. Shell Programming and Scripting
Hi Guys,
I want to echo last 5 lines of a file to a mail. My script getting continuously looped and not getting the output. can anyone help?
#!/bin/bash
read karthick;
tail -5 $karthick;
echo $karthick | mail -s "genius" someone@gmail.com
Thanks
NK (2 Replies)
Discussion started by: Karthick N
2 Replies
fmt(1) General Commands Manual fmt(1)
NAME
fmt - Formats mail messages prior to sending
SYNOPSIS
fmt [-width] file...
DESCRIPTION
The fmt command reads the input file or files, or standard input if no files are specified, and writes to standard output a version of the
input with lines of a length as close as possible to width columns. (Because fmt is internationalized software, the number of display col-
umns is not necessarily equivalent to the number of bytes.)
The fmt command both joins and splits lines to achieve the desired width, but words are never joined or split; spaces are always preserved,
and lines are split at spaces only. In effect, fmt ignores newline characters in the input and wraps words to make lines a close as possi-
ble to width columns, resulting in individual lines of varying length but a consistent (new) text width overall. Because blank lines are
always preserved, fmt does not merge paragraphs separated by blank lines.
If you specify more than one file, the files are concatenated as input to fmt. If you do not specify -width, the default line length is 72
columns. Spacing at the beginning of input lines is always preserved in the output.
The fmt command is generally used to format mail messages to improve their appearance before they are sent. It may also be useful, how-
ever, for other simple formatting tasks. For example, when you are using vi, you can use the command :%!fmt -60 to reformat your text so
that all lines are approximately 60 columns long.
NOTES
The fmt command is a fast, simple formatting program. Standard text editing programs are more appropriate than fmt for complex formatting
operations. Do not use the fmt command if the message contains embedded messages or preformatted information from other files. This com-
mand formats the heading information in embedded messages and may change the format of preformatted information.
EXAMPLES
file1 contains these lines:
Australia is an island-continent, home to many very interesting plants and animals.
To reformat this text to a narrower width, enter: fmt -30 file1
This results in the following, displayed on your screen: Australia is an island-continent, home to many very interesting plants and
animals.
To make file1 wider, enter: fmt -60 file1
This results in: Australia is an island-continent, home to many very interesting plants and animals. To format a message you have
created with the mailx editor, at the left margin enter: ~|fmt
After you enter the command, your message is formatted, in this case to the default line length of 72 columns, and the word continue
is displayed to indicate that you can enter more information or send your message.
SEE ALSO
Commands: mail(1), mailx(1), vi(1)
fmt(1)