LinuCレベル1 Version 4.0 101試験の例題と解説
103.2フィルタを使ったテキスト ストリームの処理
■トピックの概要
このトピックの内容は以下の通りです。
<103.2 フィルタを使ったテキストストリームの処理>
重要度 3
<説明>
テキストストリームにフィルタを適用できる。
<主要な知識範囲>
テキストファイルやストリームの出力をテキストユーティリティフィルタに送り込み出力を変更するために、GNU textutilsパッケージに含まれる標準的なUNIXコマンドを使用する。
<重要なファイル、用語、ユーティリティ>
cat
cut
expand
fmt
head
join
less
nl
od
paste
pr
sed
sort
split
tail
tr
unexpand
uniq
wc
■例題
下記コマンドの説明として誤っているものを選択してください。
コマンド:sort -t : -k 3 -n -r /etc/passwd | head -n 5
1. sortコマンドは、一行を「:」で区切り、3番目のフィールドでデータをソートしている
2. sortコマンドの出力をheadコマンドに入力している
3. headコマンドは先頭から5行目までを出力する
4. sortコマンドは、出力をランダムにソートしている
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「4. sortコマンドは、出力をランダムにソートしている」です。
次に解説ですが、例題のコマンドの流れは以下の通りです。
- sortコマンドの-tオプションで、フィールドの区切り文字を「:」とする
- sortコマンドの-kオプションで、ソートのキーとするフィールドを3番めに指定する
- sortコマンドの-nオプションで、文字列ではなく数値としてソートを実行する
- sortコマンドの-rオプションで、ソートの結果を反転させる
- headコマンドの-nオプションで、sortコマンドの結果の上から5番目までを出力する
[参考:/etc/passwdの書式]
# ユーザ名:パスワード:UID:GID:コメント:ホームディレクトリ:ログインシェル
root:x:0:0:root:/root:/bin/bash
具体的には、/etc/passwdをUIDでソートして、最もUIDが大きいユーザ情報を上から5番目まで出力する動作になります。
最初は長いコマンドを目にすると面食らうかもしれませんが、テキストのフィルタリングができるようになると、ログなどの膨大なデータを素早く整理できるようになります。非常に実践的な知識ですので、積極的に身につけることをおすすめします。
■例題作成者 株式会社デージーネット ソリューション開発部 森 彰吾 氏