由来や使い方で知るフィルタコマンド
主題1.03

GNUとUnixのコマンド

副題1.03.2

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

エンキャリア株式会社（LPI-Japanアカデミック認定校）
橋本 明子© LPI-Japan / EDUCO all rights reserved.

講師紹介
◼所属
エンキャリア株式会社◼経歴
講師派遣業務に従事（Solaris、Linux、NW、Storage、Programing…etc）→産業機器のプログラマーとして従事→社内育成の責任者 兼 サーバー講師へ◼現在社員の成長＝会社の成長を掲げ、社内の人財育成に注力
IT未経験者の入社後研修や社員研修の企画/実施/運営/管理
ｅラーニングサイト教材の監修、書籍の出版 等© LPI-Japan all rights reserved.

2

プロモーション◼eLearning教材 TECHHUB◼書籍
Linux教科書 図解でパッとわかる
LPIC/LinuC© LPI-Japan all rights reserved.

3

LinuCレベル１／レベル２ Version10.0とは◼LinuCとはクラウド時代の即戦力エンジニアであることを証明するLinux技術者認定✓現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化・コンテナを問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知見✓全面的に見直した「今」身につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込み✓Linuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan all rights reserved.

4

クラウドを活用できるITエンジニアに必須の技術がまとまっている
AWSなどのパブリッククラウドを活用するための技術

AWSなどのパブリッククラウドを活用するための技術間が欠けている状態

仮想マシン／コンテナ技術、クラウドセキュリティ、アーキテクチャ、ほかオンプレミスのサーバーサイドLinux技術

オンプレミスのサーバーサイドLinux技術【今まで／その他】

Version10.0© LPI-Japan all rights reserved.

5

今回のテーマ
由来や使い方で知るフィルタコマンド

対象範囲
主題1.03

GNUとUnixのコマンド

副題1.03.2

フィルタを使ったテキストストリームの処理© LPI-Japan all rights reserved.

6

（参考）オンラインセミナーの講師環境◼講師の使用する実機環境•

Virtual BoxとはホストOS型の仮想化ソフトウェアの一つ。
ソフトウェアとしてPCを再現する技術。
Windows/Mac/Linux上でも動作。
ダウンロードは下記より。
http://www.oracle.com/technetwork/serverstorage/virtualbox/downloads/•AlmaLinux
Redhat系Linuxディストリビューションの一つ。
ISOのダウンロードは下記より。
https://almalinux.org/ja/get-almalinux

AlmaLinux 8.8

VirtualBox 7.0

Windows11 Pro© LPI-Japan all rights reserved.

7

（参考）コマンドの基本のかたち◼コマンド書式
プロンプト
Linuxがコマンドを受け付ける準備が整ったことを表す記号

コマンドライン↓$ コマンド名 [オプション] [引数] ↵↑Linuxに出す指示意味のある英単語や省略形が多い↑↑
コマンドの実行内容をコマンド動作する対象選択/調整するための文字列ファイル名が多い-a、-i、-r など
ハイフンと英字の組み合わせが基本[]…必要に応じてつける↵ …エンターキーを押す© LPI-Japan all rights reserved.

8

本日の内容1. フィルタコマンドとは
2. レベル★☆☆：headコマンドとtailコマンド
3. レベル★★☆：splitコマンドとcatコマンド
4. レベル★★★：trコマンドとsedコマンド

5. おまけ：expandコマンドとunexpandコマンド© LPI-Japan all rights reserved.

9

１．フィルタコマンドとは◼フィルタコマンドとはファイルの内容を読み込んで一定の処理を行い結果を出力するコマンドの総称
cat

sed

cut

prsortexpandsplit

fmt

tailless

head

join

tr
unexpand
od

nl
paste

uniqwc© LPI-Japan all rights reserved.

10

２．レベル★☆☆：headコマンドとtailコマンド
LinuCレベル1 101試験の例題と解説より引用◼例題
ログファイル「/var/log/message」への追記分を、リアルタイムに表示できるコマンドを選択してください。

1. head -f /var/log/message
2. less /var/log/message
3. cat /var/log/message
4. tail -f /var/log/message© LPI-Japan all rights reserved.

11

２．レベル★☆☆：headコマンドとtailコマンド◼headコマンド
ファイルの先頭を表示するコマンド（デフォルト10行）◼tailコマンド
ファイルの末尾を表示するコマンド（デフォルト10行）

書式：$ head [オプション] ファイル名↵

書式：$ tail [オプション] ファイル名↵

主なオプション：-n 行数 … 指定した行数分表示

主なオプション：-n 行数 … 指定した行数分表示-f… ファイルの末尾の表示継続© LPI-Japan all rights reserved.

12

３．レベル★★☆：splitコマンドとcatコマンド◼例題
FILEという名前のファイルをsplitコマンドで分割しました。（xaa,xab,xac,...）
もう一度元のFILEファイルを復元するためのコマンドを選択してください。

1. cat x* > FILE
2. cat x* < FILE
3. cat FILE > x*
4. cat FILE < x*

© LPI-Japan all rights reserved.

13

３．レベル★★☆：splitコマンドとcatコマンド◼splitコマンド
ファイルを分割するコマンド（デフォルト1000行）◼catコマンドファイルを連結表示するコマンド
語源は「concatnate」連結する

書式：$ split [オプション] ファイル名[分割後のファイル名の先頭]↵

書式：$ cat [オプション] ファイル名↵

主なオプション：-l 行数 … 分割する行数の指定$ split FILExaa

主なオプション：-n 行数 … 行数表示

FILE1

$ cat FILE1 FILE2
this is FILE1
this is FILE2

xabFILE2
FILExac© LPI-Japan all rights reserved.

14

３．レベル★★☆：splitコマンドとcatコマンド◼splitコマンドの活躍の場$ split FILE

FILE

コンピュータA$ cat xaa xab xac > FILExaa

xaaxabxabxacxac

コンピュータB© LPI-Japan all rights reserved.

15

４．レベル★★★：trコマンドとsedコマンド◼例題
I am learning Linuxと書かれているstudyファイルの内容をI aｍ Learning LinuCに置き換えて出力するコマンドを2つ選択してください。
1. tr lx LC study
2. tr lx LC < study
3. sed y/lx/LC/ study
4. sed s/lx/LC/ study
5. sed d/lx/LC/ study© LPI-Japan all rights reserved.

16

４．レベル★★★：trコマンドとsedコマンド◼trコマンド①
テキストの文字を置換する◼sedコマンド①（yコマンド）
テキストの文字を置換する

書式：$ tr 置換対象の文字 置換後の文字↵

書式：$ sed y/置換対象/置換後/ ファイル名↵◼trコマンド②
テキストの文字を削除する◼sedコマンド②（sコマンド）
テキストの文字列を置換する

書式：$ tr -d 対象の文字↵

書式：$ sed s/置換対象/置換後/ ファイル名↵◼sedコマンド③（dコマンド）
テキストの文字を含む行を削除する
書式：$ sed /対象文字/d ファイル名↵© LPI-Japan all rights reserved.

17

５．おまけ：expandコマンドとunexpandコマンド
LinuCレベル1 101試験の例題と解説より引用◼例題
テキストファイル内のタブ文字を半角スペースに置き換えて出力するコマンドを選択してください。

1. expand test.txt
2. unexpand test.txt
3. sort test.txt
4. uniq test.txt© LPI-Japan all rights reserved.

18

５．おまけ：expandコマンドとunexpandコマンド◼expandコマンド
テキストファイル内のタブ文字を半角スペースに置き換えて出力する◼unexpandコマンド
テキストファイル内の半角スペースをタブ文字に置き換えて出力する

書式：$ expand [オプション] ファイル名↵

書式：$ unexpand [オプション] ファイル名↵

主なオプション：-t N … タブ文字を半角スペースN個に置換（デフォルト８個）

主なオプション：-t N … 半角スペースN個をタブ文字に変換（デフォルト８個）

覚え方
expand＝拡張する⇒数が増える

覚え方
unexpand＝expandの否定形⇒数が減る© LPI-Japan all rights reserved.

19本日のまとめ
1. フィルタコマンドとはテキスト加工コマンドの総称。※ファイルそのものを加工して上書きはしない
2. レベル★☆☆：headコマンドとtailコマンド
headはファイルの先頭、tailはファイルの末尾。
追記部分を表示するためには tail コマンドの -f オプションを使う。
3. レベル★★☆：splitコマンドとcatコマンド
splitはファイル分割コマンド、catは連結表示コマンド。
4. レベル★★★：trコマンドとsedコマンド
trコマンドとsedのyコマンドは同等の機能を持つ。
sedにはそのほかにも文字列置換（sコマンド）と削除（dコマンド）も存在する。
5. おまけ：expandコマンドとunexpandコマンド
expandは拡張、unexpandはexpandの反対。

© LPI-Japan all rights reserved.

20