|
|
|
|
|
by gh123man
925 days ago
|
|
I challenge myself to do it in bash one liners. I came up with a clever and shockingly simple solution to part2 using expansion and substitution. cat 1.txt | sed -E 's/(one)/\11\1/g; s/(two)/\12\1/g; s/(three)/\13\1/g; s/(four)/\14\1/g; s/(five)/\15\1/g; s/(six)/\16\1/g; s/(seven)/\17\1/g; s/(eight)/\18\1/g; s/(nine)/\19\1/g;' | sed -e 's/[^0-9]//g' | awk '{print substr($0,1,1) substr($0,length,1)}' | tr '\n' '+' | sed 's/\(.*\)+/\1\n/' | bc
|
|
Is bash required.
For example, this also works in dash, NetBSD sh, pdksh, tcsh, etc.