Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you haven't discovered recursive path expansion with `**` yet, which is supported by a number of popular shells, including bash, it is about to improve your shell life.


Agreed, doing sd 'search' 'replace' **.py is common in my history. I only mention fd + xargs as a backup for when you need to do something that a simple shell expansion won't cover.

Also, for a "confirm your changes" type workflow, I like git add -p after running the sd command just to review all of the changes.


How does that work?


It's glob and/or bsd_glob from the underlying C stdlib. Another interesting example of things the stdlib glob can do:

  #!/usr/bin/perl
  # perl since it's an easy way to use an arbitrary function from stdlib
  use File::Glob "bsd_glob";
  for (bsd_glob("{Hello,Hi} {world,everyone}...a {demo,example}")) {
    print($_."\n");
  }




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: