Skip Navigation

Posts
99
Comments
38
Joined
3 yr. ago

  • How about a fast paced sci-fi novel? The Martian by Andy Weir

  • Why would it print the colon?

  • Regex syntax and features vary between implementations. \d isn't supported by BRE/ERE flavors.

    GNU grep supports PCRE, so you can use grep -oP '/dev/loop\d' or grep -o '/dev/loop[0-9]' if you are matching only one digit character.

  • Linux @lemmy.ml

    mastering-zsh: Advanced topics to take advantage of zsh

    github.com /rothgar/mastering-zsh
  • Programming @programming.dev

    Reinvent the Wheel

    endler.dev /2025/reinvent-the-wheel/
  • Linux @lemmy.ml

    30 interesting commands for the Linux shell

    thediligentdeveloper.com /30-interesting-shell-commands
  • Linux @lemmy.ml

    Why Vim Is More than Just an Editor – Vim Language, Motions, and Modes Explained

    www.ssp.sh /blog/why-using-neovim-data-engineer-and-writer-2023/
  • Programming @programming.dev

    How to Plan and Build a Programming Project - A Legitimate Guide for Beginners

    www.peterlunch.com /blog/how-to-plan-and-build-a-programming-project
  • Linux @lemmy.ml

    Everything you need to know about sed substitution

    learnbyexample.github.io /everything-about-sed-substitution/
  • Thanks a lot for the feedback :)

  • Well, if you are comfortable with Python scripts, there's not much reason to switch to awk. Unless perhaps you are equating awk to Python as scripting languages instead of CLI usage (like grep, sed, cut, etc) as my ebook focuses on. For example, if you have space separated columns of data, awk '{print $2}' will give you just the second column (no need to write a script when a simple one-liner will do). This of course also allows you to integrate with shell features (like globs).

    As a practical example, I use awk to filter and process particular entries from financial data (which is in csv format). Just a case of easily arriving at a solution in a single line of code (which I then save it for future use).

  • I'll recommend some from the lesser known progression fantasy genre:

    • Cradle by Will Wight
    • Mage Errant by John Bierce
    • Mother of Learning by Nobody103 (Domagoj Kurmaić)
    • The Weirkey Chronicles by Sarah Lin
    • Beware of Chicken by CasualFarmer
    • Super Powereds by Drew Hayes
  • Well, I'm not going to even try understanding the various features used in that sed command. I do know how to use basic loops with labels, but I never bothered with all the buffer manipulation stuff. I'd rather use awk/perl/python for those cases.

  • This might work, but I think it is best to not tinker further if you already have a working script (especially one that you understand and can modify further if needed).

     
            perl -pe 's/\[[^]]+\]\((?!https?)[^#]*#\K[^)]+(?=\))/lc $&=~s:%20|\d\K\.(?=\d):-:gr/ge'
      
  • Hmm, OP mentioned "Only edit what’s between parentheses" - don't see anywhere that whole URL shouldn't be changed...

  • Here's a solution with perl (assuming you don't want to change http/https after the start of ( instead of start of a line):

     
            perl -pe 's/\[[^]]+\]\(\K(?!https?)[^)]+(?=\))/lc $&=~s|%20|-|gr/ge' ip.txt
    
    
      
    • e flag allows you to use Perl code in the substitution portion.
    • \[[^]]+\]\(\K match square brackets and use \K to mark the start of matching portion (text before that won't be part of $&)
    • (?!https?) don't match if http or https is found
    • [^)]+(?=\)) match non ) characters and assert that ) is present after those characters
    • $&=~s|%20|-|gr change %20 to - for the matching portion found, the r flag is used to return the modified string instead of change $& itself
    • lc is a function to change text to lowercase
  • Memory, Sorrow, and Thorn by Tad Williams

  • I use Vim ;)

    Python itself provides IDLE, which is good enough for beginners. https://thonny.org/ is another good one for beginners.

    As mentioned by others, Jetbrains is good for many languages. https://www.kdevelop.org/ is another option.