Combine the lines from two files in every combination
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
script
.gitignore
README.mkd
main.go

README.mkd

comb

Combine the lines from two files in every combination. Apparently that's called the cartesian product but don't quote me on that.

Install

▶ go get -u github.com/tomnomnom/comb

Or download a binary and put it somewhere in your $PATH (e.g. /usr/bin/comb).

Usage

▶ comb -h
Combine the lines from two files in every combination

Usage:
  comb [OPTIONS] <prefixfile> <suffixfile>

Options:
  -f, --flip             Flip mode (order by suffix)
  -s, --separator <str>  String to place between prefix and suffix

Example

Normal mode:

▶ cat prefixes
1
2

▶ cat suffixes
A
B
C

▶ comb prefixes suffixes
1A
1B
1C
2A
2B
2C

Flip mode (order by suffix):

▶ comb --flip prefixes suffixes
1A
2A
1B
2B
1C
2C

Separator:

▶ comb --separator="-" prefixes suffixes
1-A
1-B
1-C
2-A
2-B
2-C

Can't you just do this with a couple of nested bash loops?

Yes, but it's a PITA to type this:

▶ while read prefix; do while read suffix; do echo $prefix$suffix; done < suffixes; done < prefixes
1A
1B
1C
2A
2B
2C