Code and comments

  • bizdelnick@lemmy.ml
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    10 months ago

    My 5 cents:

    1. When piping output of find to xargs, always use -print0 option of find and -0 option of xargs. This allows processing files with any allowed characters in names (spaces, new lines etc.). (However I prefer -exec.)

    2. There’s an i command to insert a line in sed, it is better to use it instead of s/^/...\n/. It makes code more readable (if we can talk about readability of sed code, huh).

    3. If you want to split a delimiter separated line and print some field, you need cut. Keep awk for more complicated tasks.

    • meteokr@community.adiquaints.moe
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      10 months ago
      1. If you want to split a delimiter separated line and print some field, you need cut. Keep awk for more complicated tasks.

      Depends on the delimiter too! For anyone else reading this, sed accepts many kinds of delimiters. sed "s@thing@thing2@g" file.txt is valid. I use this sometimes when parsing/replacing text with lots of slashes (like directory lists) so I can avoid escaping a ton of stuff.

      • bizdelnick@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        10 months ago

        I know, but it is not the case I was talking about. I meant widely used commands like awk '{print $2}' that can be replaced with cut -f2.

        • meteokr@community.adiquaints.moe
          link
          fedilink
          arrow-up
          2
          ·
          10 months ago

          I know you know, as you already demonstrated your higher understanding. I just wanted to add a little bonus trick for anyone reading that doesn’t know, and is learning from your examples.