HOMEサンプル問題・例題解説101試験の例題と解説103.2 フィルタを使ったテキストストリームの処理

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


■例題
コマンドの説明として適切ではないものを選択してください。

1.「nl /etc/passwd」を実行すると、/etc/passwdの行頭に行番号が追加されて出力される
2.「wc -c /etc/passwd」を実行すると、/etc/passwdの行数が出力される
3.「head -n 10 /etc/passwd」を実行すると、/etc/passwdの先頭から10行が出力される
4.「tail -n 10 /etc/passwd」を実行すると、/etc/passwdの末尾から10行が出力される

※この例題は実際の試験問題とは異なります。

解答と解説

答えは 「2.「wc -c /etc/passwd」を実行すると、/etc/passwdの行数が出力される」です。

wcコマンドは、ファイルの行数やバイト数、単語数を出力するコマンドです。
以下のように出力されます。左から行数・単語数・バイト数・ファイル名です。

$ wc /etc/passwd
  69  104 3283 /etc/passwd

ただし、オプションを指定することで、出力する情報を限定することが可能です。

[wcコマンドの主なオプション]
-c … バイト数のみを出力する
-w … 単語数のみを出力する
-l … 行数のみを出力する

-cはバイト数を出力するためのオプションであるため、選択肢2は適切ではないということになります。

その他の回答で利用しているコマンドの解説は以下の通りです。

nlコマンドは、引数で指定されたファイルに行番号を振って出力するコマンドです。
以下のように出力されます。

$ nl /etc/passwd
     1    root:x:0:0:root:/root:/bin/bash
     2    bin:x:1:1:bin:/bin:/sbin/nologin
     3    daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4    adm:x:3:4:adm:/var/adm:/sbin/nologin
     5    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
(以下省略)


headコマンドは、引数で指定されたファイルの最初の一部を出力するコマンドです。
デフォルトでは10行出力されます。-nオプションで行数を指定することもできます。
以下は出力例です。

$ head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin


tailコマンドは、引数で指定されたファイルの末尾から一部を出力するコマンドです。
デフォルトでは10行出力されます。-nオプションで行数を指定することもできます。
以下は出力例です。

$ tail /etc/passwd
user01:x:1000:1000:user01:/home/user01:/bin/bash
user02:x:1001:1002:user02:/home/user02:/bin/bash
systemd-coredump:x:978:978:systemd Core Dumper:/:/sbin/nologin
akmods:x:977:977:User is used by akmods to build akmod packages:/var/cache/akmods/:/sbin/nologin
vboxadd:x:976:1::/var/run/vboxadd:/bin/false
radiusd:x:95:95:radiusd user:/var/lib/radiusd:/sbin/nologin
clamupdate:x:975:975:Clamav database update user:/var/lib/clamav:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
saslauth:x:974:76:Saslauthd user:/run/saslauthd:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin


このようなコマンドを組み合わせて利用することで、データをエディタで開いて編集するよりも高速に編集をしたり、欲しいデータを探すことができます。
使い方をよく覚えておきましょう。


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

  • 今回の解説について、理解できないポイントがあればどんどん質問を。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※上記の解説とその内容については、例題作成者の監修です。
    内容や試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

このページのトップへ