$ docker ps | rb drop 1 | rb -l split[1]
$ docker ps | perl -anE 'say $F[1] if $.>1'
perl solved this problem a long time ago, people $ docker ps | rb drop 1 | rb -l split[1]
$ docker ps | perl -anE 'say $F[1] if $.>1'
perl solved this problem a long time ago, people awk 'NR>1{print $2}'
or ruby[1] ruby -ane 'puts $F[1] if $.>1'
which one to use depends on lots of factor - speed, features, availability, etc as well as whether user already knows perl[2]/ruby/etcFurther reading(disclosure: I wrote these)
[0]: https://github.com/learnbyexample/Command-line-text-processi...
[1]: https://github.com/learnbyexample/Command-line-text-processi...
[2]: https://github.com/learnbyexample/Command-line-text-processi...
Look again at your code. I'm not 100% sure what the Ruby version does, but once I do figure out the exact semantics of drop and split, it's going to be waaaaaaaaaaaaaaaaay easier to remember, understand and modify the Ruby version than the Perl one.
Your post comes off as something from reddit's /r/nottheonion, you're just making the case against Perl for Perl-haters :)
-a autosplits each line by whitespace and puts each element into the array F (this was inspired by AWK).
-n loops through each line of the file, and -E executes the perl.
$. (NR in AWK) is the line number.
As others have noted, you can write the same thing in ruby on the command line already with `ruby -ane 'puts $F[1] if $.>1'`
(Notice the similarities?)
If you write one liners in AWK, Perl, or Ruby often the "odd" variables look more like useful shortcuts.
*edit You could also write the perl without any of the special variables, but it would be much more verbose, hence the special characters and flags.
Granted, anything really nontrivial I'll usually just write a Python script for, but the point stands.