Also, i managed to, i think simplify the second example to:
1,$-2 x/./ {
a/->/
/./ t .
}
1,$-2 {
p
}
q
Which taught me a lot, because at first, i did not understand why we would stop at last line - 2 ($ - 2), but in fact yeah last line is the very last "\n", that is why we stop at $ - 2 to not do E->weird.
Yeah, sam is not universal, but it can solve complex tasks more simply by just running it a few times. The final example already normalizes \n (v/./ c/\n/) in a single pass, but we can make it even simpler by just writing:
, x/(.+\n)+/ .,+#0-#1 x/\n/ c/ /
, x/\n+/ c/\n/
(I haven’t tested it.)
I’m glad that sam worked out for you. You can learn more from [1] and [2]. If you need any help, you’re always welcome to ask me.
Which taught me a lot, because at first, i did not understand why we would stop at last line - 2 ($ - 2), but in fact yeah last line is the very last "\n", that is why we stop at $ - 2 to not do E->weird.
I'm starting to truly love sam