Browse Source

Add combine-by-prefix

master
JustAnotherArchivist 2 years ago
parent
commit
a3a2979508
1 changed files with 6 additions and 0 deletions
  1. +6
    -0
      combine-by-prefix

+ 6
- 0
combine-by-prefix View File

@@ -0,0 +1,6 @@
#!/bin/bash
# Usage: pass lines into stdin; consecutive lines with the same first field (everything up to the first whitespace) will be grouped together on stdout.
# Input lines: 'A 1', 'A 2', 'B 3', 'C 4', 'C 5', 'B 6'
# Output lines: 'A 1 2', 'B 3', 'C 4 5', 'B 6'
# Whitespace within input lines beyond the first whitespace after the prefix is preserved. A single space is used to separate prefix and combined lines.
exec awk '($1 != lastPrefix) || (NR == 1) { if (NR != 1) { printf "\n"; } printf "%s", $1; lastPrefix = $1; } { printf " %s", substr($0, index($0, FS) + 1); } END { printf "\n"; }'

Loading…
Cancel
Save