Sponsored Content
Top Forums Shell Programming and Scripting Get output of multiple pattern match from first field to a file Post 302990517 by MadeInGermany on Friday 27th of January 2017 12:26:14 PM
Old 01-27-2017
My second sample
works the same as Scrutinizer's sample:
sort the file on the 1st field and pipe the result to awk or a while loop. The awk automatically loops over each input line, so the code only handles the per-line action.
Detailed description follows.
In shell the while loop reads line by line; the 1st field goes to $server variable, the rest to $path variable.
If $server is different from $pserver (true in line 1), it creates a new file "$server.out" with a descriptor 3, and $server is saved in $pserver. Then the "$server $path" is written to the descriptor 3.
If $server is unchanged (equal to $pserver) it writes further "$server $path" to the descriptor 3.
If $server is different from $pserver again, it creates a new file, again using the descriptor 3 that automatically closes the old file.
In contrast, the awk code needs an explicit close(), does not show the file descriptor, and creates the file automatically with the first write.
This User Gave Thanks to MadeInGermany For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Output Multiple Field from dataBase file

I am fairly new in unix I was wondering if anybody can help me out with this: I am trying to output to a file the following fields; Field1 Field2 Field4 From a database file dataBase1. this is how the file looks: dataBase1 TABLE DATA Example ================== Table ... (3 Replies)
Discussion started by: Dennz
3 Replies

2. Shell Programming and Scripting

how do i pattern match a field with awk?

hi, let's say $numbers = "324 350 587" an so on... what i'm trying to do is this: awk -v numbers="$numbers" '{if (numbers ~ /$2/) print $0, "bla bla"}' file # file looks like this: 214 ..... 215 ... 216 .... 250 ... 324 325 ... 350 something ... ... 587 ... (4 Replies)
Discussion started by: someone123
4 Replies

3. Shell Programming and Scripting

AWK: Pattern match between 2 files, then compare a field in file1 as > or < field in file2

First, thanks for the help in previous posts... couldn't have gotten where I am now without it! So here is what I have, I use AWK to match $1 and $2 as 1 string in file1 to $1 and $2 as 1 string in file2. Now I'm wondering if I can extend this AWK command to incorporate the following: If $1... (4 Replies)
Discussion started by: right_coaster
4 Replies

4. UNIX for Dummies Questions & Answers

Match pattern in a field, print pattern only instead of the entire field

Hi ! I have a tab-delimited file, file.tab: Column1 Column2 Column3 aaaaaaaaaa bbtomatoesbbbbbb cccccccccc ddddddddd eeeeappleseeeeeeeee ffffffffffffff ggggggggg hhhhhhtomatoeshhh iiiiiiiiiiiiiiii ... (18 Replies)
Discussion started by: lucasvs
18 Replies

5. Shell Programming and Scripting

Multiple pattern match and print the output in a single line

I need to match two patterns in a log file and need to get the next line of the one of the pattern (out of two patterns) that is matched, finally need to print these three values in a single line. Sample Log: 2013/06/11 14:29:04 <0999> (725102) Processing batch 02_1231324 2013/06/11... (4 Replies)
Discussion started by: rpm120
4 Replies

6. Shell Programming and Scripting

Match Pattern and print pattern and multiple lines into one line

Hello Experts , require help . See below output: File inputs ------------------------------------------ Server Host = mike id rl images allocated last updated density vimages expiration last read <------- STATUS ------->... (4 Replies)
Discussion started by: tigerhills
4 Replies

7. Shell Programming and Scripting

Remove multiple lines that match pattern

Not sure how I can accomplish this. I would like to remove all interfaces that have the commands I would like to see: switchport port-security, spanning-tree portfast. One line is no problem. interface FastEthernet0/8 spanning-tree portfast interface FastEthernet0/9 spanning-tree... (4 Replies)
Discussion started by: mrlayance
4 Replies

8. Shell Programming and Scripting

Command/script to match a field and print the next field of each line in a file.

Hello, I have a text file in the below format: Source Destination State Lag Status CQA02W2K12pl:D:\CAQA ... (10 Replies)
Discussion started by: pocodot
10 Replies

9. Shell Programming and Scripting

Removing multiple lines from input file, if multiple lines match a pattern.

GM, I have an issue at work, which requires a simple solution. But, after multiple attempts, I have not been able to hit on the code needed. I am assuming that sed, awk or even perl could do what I need. I have an application that adds extra blank page feeds, for multiple reports, when... (7 Replies)
Discussion started by: jxfish2
7 Replies

10. UNIX for Beginners Questions & Answers

Modify text file if found multiple pattern match for every line.

Looking for help, i have input file like below and want to modify to expected output, if can without create additional file, hope can direct modify it. have 2 thing need do. 1st is adding a word (testplan generation off) after ! ! IPG: Tue Aug 07 14:31:17 2018 2nd is adding... (16 Replies)
Discussion started by: kttan
16 Replies
CVSSUCK(1)						      General Commands Manual							CVSSUCK(1)

NAME
cvssuck - inefficient cvs repository grabber using cvs command SYNOPSIS
cvssuck [-h] [-b] [-s] [-v] [-D debug-option,...] cvsroot [-o output-directory|-O output-base] [-l lock-directory|-L lock-base] module ... DESCRIPTION
CVSsuck is a mirroring tool for cvs repositories. Unlike other tools such as CVSup or rsync, it uses cvs command to access the repository. So, it works well with remote repositories without a special server or shell account. However it is inefficient and not perfect because cvs client/server protocol is not designed for mirroring. If a server provides special way to grab a repository, you shouldn't use CVS- suck. OPTIONS
-h prints help message. -b makes CVSsuck to traverse directories in breadth first. CVSsuck traverses directory in depth first by default. -s specifies skeleton mode. In this mode, CVSsuck grabs only first revision of the trunk, 1.1, branchpoints, head of branches and tagged revisions. Note that first two (first revision of the trunk and 1.1) is identical in usual case. -v makes CVSsuck verbosely. This is same as `-D command,attic,leavetmp'. -D debug-option,... specifies debug options. Available debug options are listed by `cvssuck -h'. -o output-directory specifies the directory to store grabbed repository. A remote RCS file module/dir/file,v in cvsroot will be stored in output-direc- tory/dir/file,v. -O output-base specifies the base directory to store grabbed repository. A remote RCS file module/dir/file,v in cvsroot will be stored in output- base/module/dir/file,v. -o and -O is exclusive. The last specified before module is effective. By default, CVSsuck behaves as that current directory is specified with -O. -l lock-directory specifies the directory of CVS style lock. -L lock-base specifies the base directory of CVS style lock. -l and -L is exclusive. A lock directory should be specified after an output directory. The last specified before module after an output directory is effective. By default, CVSsuck assumes a lock directory is same as output directory. EXAMPLES
% cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs cvssuck grabs the module cvssuck in the repository :pserver:anonymous@cvs.m17n.org:/cvs/cvs into the directory cvssuck. % cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs cvssuck cvs-info grabs the modules cvssuck and cvs-info. % cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs -O $HOME/.cvsroot cvssuck grabs the module cvssuck into $HOME/.cvsroot/cvssuck. % cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs -O $HOME/.cvsroot -L $HOME/.cvslock cvssuck grabs the module cvssuck into $HOME/.cvsroot/cvssuck with the lock directory $HOME/.cvslock/cvssuck. % cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs -o $HOME/.cvsroot/cvs/suck cvssuck grabs the module cvssuck into $HOME/.cvsroot/cvs/suck. % cvssuck -s :pserver:anonymous@cvs.m17n.org:/cvs/cvs cvssuck grabs needy revisions (skeleton) of the module cvssuck. SEE ALSO
http://cvs.m17n.org/~akr/cvssuck/ cvs(1), rcs(1), cvsup(1), rsync(1) AUTHORS
Tanaka Akira <akr@m17n.org>. BUGS
It's inefficient. It's not perfect because revisions stated as `dead' cannot be retrieved. However it is not observable until the state is changed by `cvs admin -s'. 25 September 2000 CVSSUCK(1)
All times are GMT -4. The time now is 08:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy