雄也の?日坊主日記

2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|
2006|05|
2007|04|05|09|10|11|
2008|04|05|08|10|11|

2004-09-05

_ [Ruby] /etc/passwd と /etc/shadow の ワンライナー

$ ruby -e 'print open("/etc/shadow").grep(/^(?:#{$<.map {|l| l.split(/:/)[0]}.join("|")})/)'

とか。

[Journal InTime - ワンライナーより引用]

おお! 二つ目の呼出しも一行! 感動的です. ふむふむ,File#grep を使って絞るんですか. ああ,前田さんのコードでは $<.map とされてますが, ARGF.readlines.collect なんていっぺん配列にさんでも ARGF.collect って書けたんですね.

あと、一つ目は

$ ruby -F: -ane 'print if $F[3] == "100"' /etc/passwd

の方が楽かも。

[Journal InTime - ワンライナーより引用]

一つ目は -p オプションを使って,

ruby -F: -ape 'next if "100" != $F[3]' /etc/passwd

としても書けるんですね(意味的にわかりにくくなりますが).

お名前:
E-mail:
コメント:
[]

Debian | LOOX T70HN | Linux | Rails | Rast | Ruby | TYPE T VGN-TZ90HS | boat | hardware | music | p | snowboard | software | surfing | tDiary | その他 | ボウリング | 映画 | 家族 | 会社 | 管理 | 丸藤 | 高専 | 散歩 | 仕事 | 自分 |

"Yuya.Nishida." / 西田 雄也 <yuya at j96 dot org>