LinuCレベル1 Version 4.0 101試験の例題と解説

103.2フィルタを使ったテキスト ストリームの処理

今回は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コマンドのオプションは、「-R」です。そのためこの選択肢は誤りです。

次に解説ですが、例題のコマンドの流れは以下の通りです。

- 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番目まで出力する動作になります。

最初は長いコマンドを目にすると面食らうかもしれませんが、テキストのフィルタリングができるようになると、ログなどの膨大なデータを素早く整理できるようになります。非常に実践的な知識ですので、積極的に身につけることをおすすめします。

■例題作成者
株式会社デージーネット ソリューション開発部    森 彰吾 氏

ページトップへ