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

Coding since 1986 and I touch the shell as much as I have to, If I cared that much I would still be using MS-DOS, and UNIX without X.


When you need to rename 5000 files from abcd_small.jpg to abcd.jpg, how do you do that?

  rename s/_small// *_small.jpg
When you have the string ABCD_XYZ in 50 files but you need to change it to DEFG_UVW, how do you do that?

  perl -pi -e 's{ABCD_XYZ}{DEFG_UVW}' **/*(.)
When you need to move all the files ending '.png' into the directory 'PNG', and all the ones ending '.jpg' into 'JPG', how do you do that?

  mkdir JPG PNG;
  for i in *.png *.jpg; mv $i $i:e:u


As we're in a zsh story, I'll point out it comes with a clever file renaming interface out of the box¹. It allows full access to all the advanced glob operators zsh provides too².

¹ https://zsh.sourceforge.io/Doc/Release/User-Contributions.ht...

² https://zsh.sourceforge.io/Doc/Release/Expansion.html#Filena...


On the second one - if that’s in code than a good IDE will not only do it with a single keypress, but will also (optionally) do it intelligently eg change only in the code, not the comments, show you a browseable preview, and offer undo should you get it wrong.

I like the shell but I also think IDEs are underrated.


There are GUI tools that do that, and thankfully most scripting languages have a REPL.


I'll bet it takes longer to find and use a GUI tool for these.

And a shell is a REPL.


You bet wrong, because naturally approaching 50y, I have my tools for quite some time, for the stuff I care about, not random examples on the Internet.

A UNIX shell is a very bad approximation of a real programming language REPL.

It is no accident that sh scripts turn into Perl, Python, Tcl, Lisp,... when one wants to keep sanity.




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

Search: