fork download
  1. #!/bin/bash
  2. s="abc
  3. pattern1 X1 X2 X3
  4. pattern2 X4 X5
  5. abc2
  6. ..."
  7. #sed -E ':a; s/^(pattern[0-9]+)([[:blank:]].*)X([0-9]+)$/\1-\3\n\1\2/; ta;' <<< "$s"
  8. #sed -E ':a; s/^(pattern[0-9]+)([[:blank:]].*)X([0-9]+)$/\1\2\n\1-\3/g; ta' <<< "$s"
  9. perl -pe 's{^(pattern\d+)((?:\s+X\d+)*)$}{ $res=join("\n$1-", split(/\s+X/,$2));$res=~s/^\n//r}ge' <<< "$s"
Success #stdin #stdout 0s 5068KB
stdin
Standard input is empty
stdout
abc
pattern1-1
pattern1-2
pattern1-3
pattern2-4
pattern2-5
abc2
...