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

101試験の例題と解説

103.2フィルタを使ってテキストストリームを処理する

今回は、101試験の出題範囲から「103.2 フィルタを使ってテキストストリームを処理する」についての例題を解いてみます。

■例題
テキストデータに含まれるタブ文字をスペースに変換したい。使用するフィルタコマンドとして適切なものを選びなさい。

1. expand
2. cut
3. unexpand
4. uniq
5. fmt


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

解答と解説

答えは 1. expand です。

フィルタコマンドは、標準入力からストリームデータを取り込み、必要な処理を施した後に標準出力からストリームデータを出力します。どのような処理を行うかによってコマンドが分かれていますし、さらにコマンドにオプションを付けて実行することで細かく処理が変わりますから、単なる暗記ではなく、どのようなシチュエーションで使用するのかを考えながらコマンド動作を試してみる必要があります。

例題の意図は、テキストデータ作成時にインデントにタブを使用しているデータを加工することを意図しています。なぜタブでは駄目かというと、多くの表示系ではタブは半角スペース8個分で表示されますが、場合によっては4個分などで表示する場合があります。桁ずれを起こさないような適切なデータを作るには、あらかじめタブをスペースに変換しておくのが有効です。

expandコマンドは、タブを半角スペースに変換します。デフォルトの設定は1タブあたり8半角スペースですが、-tオプションで数を変えることができます。
たとえば4半角スペースに変えたければ

$ cat tabfile | expand -t 4 > spacefile

とします。

逆に、半角スペースをタブに変換したい場合には、unexpandコマンドが別途用意されているので、そちらを使用します。

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

このページのトップへ