どんなツール・言語を使ってもいいから、以下の小問題を1問3分以内で解決できるだろうか? (なかには5秒でできるものもあると思うが)
- ファイルfoo.txtの37567行目から99035行目までを抜き出して、別ファイルbar.txtにする。
- ファイルfoo.txtの中からIPアドレスだけを抜き出して表示する。ただしfoo.txtのなかに重複したIPアドレスが存在するとして、重複は除いて表示すること。
- ファイルfoo.txtの文字コードをShift JISからUTF-8へ変更する。
- ファイルfoo.txtの改行コードをCRLFからCRへ変更する。
- ファイルfoo.txtの中で”hoge”という文字列を含まない行だけ別のファイルbar.txtに出力する。
- ディレクトリ/home/foo以下のファイルの中で、文字コードがShift JISのものをすべてEUCJPに変更する。
- ディレクトリ/home/foo以下のファイルの中で、改行コードがCRLFのものをすべてCRに変更する。
- ディレクトリ/home/foo以下の*.logファイルのなかで、ファイルの更新日付が2008/04/15 00:00:00以降のもののリストlist.txtを作成
- 100000行のファイルfoo.txtから、行末のスペースを削除してファイルbar.txtに出力。ただし、スペースがいくつ入っているかは不明。入っていないかもしれない。
- 100000行のファイルfoo.txtから、空行を削除してファイルbar.txtに出力。
- ディレクトリ/home/foo以下に存在する*.htmlファイルそれぞれの中の、”<br>”という文字列をすべて”<br />”に置換。元ファイルは.bakという名前を付けて保存。
- 複数カラムからなるCSVファイルが2つあり(a.csv, b.csv)、それぞれ1カラム目はユニークな文字列が入っている。この二つのファイルから1列目が同じもののみを抽出して、ファイルに出力。この際、a.csvの2カラム目およびb.csvの3カラム目を抽出してc.csvの2, 3カラム目とする。
- 100000行のログファイルfoo.logがある。1行はカンマ区切りになっており、区切られたそれぞれの列には様々な種類の情報が出力されている。いま、1カラム目には”2008/04/13 21:51:39.709322+0900″という形式のタイムスタンプが出力されているとする。このログファイルfoo.logの全ての行のタイムスタンプを一律37分12秒ずらして(戻して)、新しいファイルbar.logとしたい。
- 上記ログファイルfoo.logの2カラム目が”INFO”かつ、4カラム目がSQL=XXXXXXXX(SQL文)となっている行のうち、XXXXXXXXに書かれているSQL文のうちupdate文だけを抽出して別ファイルsql_update_list.txtに出力。
- あるログファイルfoo.logを監視して、ファイルサイズが10MB以上になったら現在日付をつけてリネームするなにかを作成。
僕の中では、こういう小問題を数分でスパッと解決できるスキルやノウハウを数多く持つ人のことを、IT的な業界で実務能力がある人だといいたい。(ちなみに僕は遅い)
もちろん、このようなスキルは一面に過ぎない。しかし現場でトラブルが起きたときなど、こういう小問題の解答をノータイムで求められる(しかもお客さんの前で)ケースは多々あり、確実に必要とされるスキルのひとつであることは間違いない。というか、その場でサクッとできるひとは単純にかっこいいと思う。
出題がちょっとLinux/Unix寄りだが、Windows(しかもデフォルト状態)でやらないといけないシチュエーションとかで考えると、結構難しくなるかもしれない。
ということで、どんな方法(ツール・言語・手順など)でもいいので、また、一問でもいいので、コメントやトラックバックで解答をもらえると、とてもうれしい。いろいろな人のやりかたが見てみたい。
また、他にも似たような問題があったら教えてもらえると、さらにうれしい。こういう問題を集めた問題集的なものを作ってみたい。
コメント
コメント一覧 (3件)
カノログ – IT的な実務能力を測る15問
どう書く? 的な遊び。
詳細は省くとしてとりあえずどの道具を使えばよさそうかなという当たりだけ考えてみます。マニュアル読んでません。
ファイルfoo.txtの37567行目から99035行目までを抜き出して、別ファイルbar.txtにする。
sed で行を指定してリダイレクト
ファイルfoo.txtの中からIPアドレスだけを抜き出して表示する。ただしfoo.txtのなかに重複したIPアドレスが存在するとして、重複は除いて表示すること。
grep で [1-9]{1,3}\. ( 1 回から …
全然解けないので、化学バージョンも作ってください。
寂しいことに、化学はすっかり忘れてしまいました。
ベンゼン環を紙に描こうと思って、素で五角形を描いてしまったほどの体たらくです(笑)