[HN Gopher] Sed challenge: join cal -y months into a single column ___________________________________________________________________ Sed challenge: join cal -y months into a single column Author : jolmg Score : 26 points Date : 2021-11-17 16:26 UTC (6 hours ago) (HTM) web link (jol.dev) (TXT) w3m dump (jol.dev) | clon wrote: | At what point should you give up writing a sed "program" and just | write a few lines of Python to arrive at an answer? Seems he went | way past that point. | fragmede wrote: | _> Of course, I just looked at the calendar and counted_ | azalemeth wrote: | Is answering the challenge he answered with python actually | easier? I know _counting the weeks_ is easier, but is parsing | text like a ninja far less verbose in posix-like tools? | Learning awk made me much more productive, at the very least... | jolmg wrote: | It was even easier to just count with my finger. :) | | The point was a sed challenge. Challenges are fun sometimes. | | It was also a good exercise for doing things with sed. There | are times when sed is the most terse way to shape text to how | you want it. It's also very portable. | raspyberr wrote: | I really like the start of your blog. Please do consider adding | RSS/Atom support. I'll add you to my feed if you do. | tlackemann wrote: | org-mode blog! How do you like it? Been considering this for | myself recently but haven't looked into RSS much. I like the | theme you built. | jolmg wrote: | > org-mode blog! How do you like it? | | I've just gotten started! I think it's comfortable in the sense | that I won't need to copy and paste stuff to and from the | terminal and can just code from the same file and see how the | result changes. That's really neat! | | I imagine I'll be feeling restricted at some point, since I'm | not doing custom HTML for each post, and I want to keep the org | file readable on its own, so no excessive markup. | | > I like the theme you built. | | Thanks, though it's really almost no styling. The syntax | highlighting is done by the ruby library `rouge`. The colors | were just black on white, but the Dark Reader Firefox extension | I have installed would change that to these off-black and off- | white colors, and I liked it, so I set them in the CSS. | jez wrote: | This is super cool--I've wanted something notebook-like for blog | posts in the past, and I had no clue it was possible in org-mode! | | I can also empathize with the desire for a single-column calendar | output, but my first instinct wasn't to implement it with sed: | | https://github.com/jez/calz | | Substantially more lines than the sed implementation, but also | more feature rich, because I can do things like | calz from last month to next month calz from now to feb | | etc. Also: pretty colors. | jolmg wrote: | > This is super cool--I've wanted something notebook-like for | blog posts in the past, and I had no clue it was possible in | org-mode! | | Thanks! You can access the org file by changing the URL | extension from .html to .org. Maybe I should make that a link. | raziel2p wrote: | Wow. I've only ever used sed for simple regex operations, reading | this has opened up a whole new world for me. | | ... I will force myself not to make use of it because you're a | bad influence and I already have to stop myself from using too | much grep/sed/awk magic, but this is seriously impressive, and an | entertaining read. Well done! | jolmg wrote: | Thank you for the kind words! :) | mananaysiempre wrote: | I can't bring myself to write blog posts, but here's a | precedence parser in sed as part of a solution for last year's | Advent of Code #18 (https://adventofcode.com/2020/day/18): | #!/bin/sh -eu set -o pipefail sed -E \ | -e 's/([+*])\s*([0-9]+)/ \2 \1 /g' \ -e ':parens' \ | -e 's/([+*])\s*(\([^()]+\))/ \2 \1 /g' \ -e | 's/\(([^()]+)\)/ \1 /g' \ -e '/\(/bparens' \ -e | 's/\s+/ /g' -e 's/^ //' -e 's/ $//' \ -e '$a\' -e '[+ | z1<r]sr z1<r p' | \ dc | | (I'm very, very sorry for fuelling your addiction.) | nvartolomei wrote: | How about a chess engine written in sed? | https://github.com/moldabekov/chess- | sed/blob/master/chess.se.... | | And accompanying blog post in Russian | https://habr.com/ru/post/191006/. | otherflavors wrote: | I'd have suggested to make this more challenging and only use | POSIX sed, but -y is not part of POSIX cal anyway | jolmg wrote: | Another way to make it more challenging would be to do | everything in a single `sed` call. Maybe it's for that kind of | script that features like `D`'s and `P`'s "up to the first | newline" detail become useful. ___________________________________________________________________ (page generated 2021-11-17 23:00 UTC)