Sponsored Content
Top Forums Shell Programming and Scripting awk permutations and combinations Post 302990861 by Don Cragun on Wednesday 1st of February 2017 06:37:24 PM
Old 02-01-2017
As RudiC said, variables that aren't supplied as arguments when an awk function is called are local variables and are initialized to 0 (if used as a number) or to an empty string (if used as a string). Variables that are supplied as arguments when a function is called are still local variables to that function but are initialized from the value supplied.

The unusual thing about the comb() function in this code is that it is called recursively and neither argument is specified the first time it is called (in the END clause), but passes itself a value for the 1st argument (but not the 2nd) when it calls itself recursively. Although there is never an assignment to the variable v in that script, the recursive calls to comb() made by comb() effectively assign a value to v by passing in a value for one argument that is based on the value passed in plus one element in the array created by reading values from the file named infile.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Awk execution with more combinations..

The requirement is to extract 9 fields randomly from a 13 field CSV file to make another CSV file. While doing that, the field 7 and 8 of input csv file should comeout as field 7 of output with the value as first charecters of both 7 and 8 fields of input file(CSV file). Presently I am using... (1 Reply)
Discussion started by: mitte_dino
1 Replies

2. UNIX for Advanced & Expert Users

Combinations

Hello All, i have two files, one of the format A 123 B 124 C 234 D 345 And the other A 678 B 789 C 689 D 567 I would like to combine them into one file with three columns: A 123 678 B 124 789 C 234 689 (4 Replies)
Discussion started by: Khoomfire
4 Replies

3. Shell Programming and Scripting

Printing all combinations : Awk

$ cat key.txt #ID1 Start 1|AA1 2|AA2 3|AA3 4|AA4 #ID1 Complete #ID2 Start 1|BB1 2|BB2 3|BB3 #ID2 Complete I was required this output: AA1|BB1 AA1|BB2 AA1|BB3 (7 Replies)
Discussion started by: jkl_jkl
7 Replies

4. Shell Programming and Scripting

Combinations / Permutations

Hello Scrutinizer / Group , The shell script of awk that Scrutinizer made calculate all possible permutations in this case 3125 (5 numbers) but i want to have only the 126 possible combination. For now it does not matter the specific order of the combination numbers. I would appreciate it you... (1 Reply)
Discussion started by: csierra
1 Replies

5. Shell Programming and Scripting

awk -- print combinations for 2 cols

Dear all, could you please help me with awk please? I have such input: Input: a d b e c f The number of lines is unknown before reading the file. I need to print possible combination between the two columns like this: Output: a d b d c d a e b e c e a f (2 Replies)
Discussion started by: irrevocabile
2 Replies

6. Shell Programming and Scripting

All possible combinations

Hi, I have an input file like this a b c d I want to print all possible combinations between these records in the following way aVSb aVSc aVSd bVSc bVSd cVSd VS indicates versus. All thoughts are appreciated. (5 Replies)
Discussion started by: jacobs.smith
5 Replies

7. Shell Programming and Scripting

Creating all possible bi-combinations of a list with grep/awk

I have a 1-column file such as the example below: flower cat dog pizza car book I want to create a second column in which all possible 2-item combinations of column one are outputted in 2 tab-separated columns, such as: flower flower cat flower dog flower pizza ... (5 Replies)
Discussion started by: owwow14
5 Replies

8. UNIX for Dummies Questions & Answers

Generating all possible combinations of values in field 1 (awk)

Input: A|1 B|2 C|3 D|4 Output: A+B|3 A+C|4 A+D|5 B+C|5 B+D|6 C+D|7 A+B+C|6 A+B+D|7 A+C+D|8 B+C+D|9 A+B+C+D|10 I only managed to get the output for pairs of $1 values (i.e. combination of length 2): (4 Replies)
Discussion started by: beca123456
4 Replies

9. Shell Programming and Scripting

Permutations with awk

Hello I have a very simple input file in which there are a list of numbers: 1 2 3 4 5 6 7 8 9 10 My actual dataset is about 200 lines long. I was wondering how to add different permutations of 3 numbers for all the numbers in the dataset. For example: 1+2+3; 3+5+7; 2+8+1; 9+3+4... (1 Reply)
Discussion started by: Rabu
1 Replies

10. Shell Programming and Scripting

awk - function to return permutations of n items out of m

Hi, I'm trying to write an awk function that returns all possible permutations of n items chosen in a list of m items. For example, given the input "a,b,c,d,e" and 3, the function should return the following : a a a a a b a a c a b a a b b ... c a a c a b ... e e c e e d e e e (125... (21 Replies)
Discussion started by: cjnwl
21 Replies
comb(1) 						      General Commands Manual							   comb(1)

NAME
comb - Combines Source Code Control System (SCCS) deltas SYNOPSIS
comb [-clist] [-os] [-pSID] file... The comb command writes to standard output a shell procedure for combining the specified deltas (SIDs) of an SCCS file and creating a new version of the file with fewer deltas. OPTIONS
Each option or group of options applies independently to each named file. Specifies a list of deltas (SIDs) that the shell procedure will preserve (see get -ilist). The procedure will combine all other deltas. Accesses the reconstructed file at the release of the delta to be created for each get -e generated; otherwise, accesses the reconstructed file at the most recent ancestor. Using the -o option may decrease the size of the reconstructed SCCS file. It may also alter the shape of the delta tree of the original file. Specifies the SID of the oldest delta for the resulting procedure to preserve. All older deltas are combined in the reconstructed file. Causes comb to gen- erate a shell procedure that, instead of combining the deltas, produces a report for each file, which lists the file name, size (in blocks) after combining, original size (also in blocks), and percentage change computed by the following formula: 100 * (original - combined) / original Run comb using this option before actually combining SCCS deltas in order to judge how much space will actually be saved by the com- bining process. DESCRIPTION
By piping the output of the comb command to a shell, or redirecting the output to a file and running that file as a shell procedure, you can reduce the size of your SCCS file. You can first see how much the file will be reduced by running the comb command with the -s option. If you specify a directory in place of file, the comb command performs the requested actions on all SCCS files (that is, those with file names with the s. prefix). If you specify a - (dash) in place of file, the comb command reads standard input and interprets each line as the name of an SCCS file. The comb command continues to take input until it reads End-of-File. If you do not specify any options, the comb command preserves only leaf deltas and the minimal number of ancestors needed to preserve the tree (see the delta command). The comb command may rearrange the shape of the tree deltas. The comb command may not save any space; in fact, it is possible for the reconstructed file to actually be larger than the original. EXAMPLES
To generate a report on how much space will be saved by combing all deltas older than SID 1.4 for SCCS file s.test.c, enter: comb -p1.4 -s s.test.c | sh To actually combine the deltas, enter: comb -p1.4 s.test.c | sh FILES
Temporary files. SEE ALSO
Commands: admin(1), cdc(1), delta(1), get(1), prs(1), rmdel(1), sact(1), sccs(1), sccsdiff(1), sccshelp(1), unget(1), val(1), what(1) Files: sccsfile(4) Programming Support Tools comb(1)
All times are GMT -4. The time now is 07:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy