メインコンテンツへスキップ
レッスン 6 / 10推定時間: 25

基本的なテキスト処理

echo、grep、sortコマンドを使ってテキストの出力、検索、並び替えを行う方法を学びます

このレッスンの学習目標

  • echoでテキストを出力できる
  • grepでテキストを検索できる
  • sortでテキストを並び替えできる
  • パイプを使ってコマンドを組み合わせられる

テキストの出力:echo

echoは、テキストを画面に出力したり、ファイルに書き込んだりする基本的なコマンドです。

基本的な使い方

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

試してみよう:

  1. echo "Hello, Linux!" - テキストを出力
  2. echo -n "No newline" - 改行なしで出力
  3. echo -e "Line1\nLine2\tTabbed" - エスケープシーケンスを有効化

echoの活用例

# 変数の値を表示
name="Alice"
echo "Hello, $name!"

# ファイルに出力
echo "New content" > file.txt
echo "Append content" >> file.txt

# 複数行のテキスト
echo -e "First line\nSecond line\nThird line"

エスケープシーケンス

シーケンス意味
\n改行
\tタブ
\\バックスラッシュ
\"ダブルクォート

テキストの検索:grep

grep(Global Regular Expression Print)は、テキスト内でパターンを検索する強力なツールです。

基本的な検索

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

試してみよう:

  1. grep apple fruits.txt - "apple"を含む行を表示
  2. grep -i Apple fruits.txt - 大文字小文字を区別しない
  3. grep -n apple fruits.txt - 行番号付きで表示

grepの重要なオプション

オプション説明使用例
-i大文字小文字を区別しないgrep -i pattern file
-n行番号を表示grep -n error log.txt
-vマッチしない行を表示grep -v debug log.txt
-cマッチした行数をカウントgrep -c error log.txt
-rディレクトリを再帰的に検索grep -r TODO ./src/
-E拡張正規表現を使用`grep -E 'error

正規表現の基本

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

基本的な正規表現パターン:

  • ^ : 行の先頭
  • $ : 行の末尾
  • . : 任意の1文字
  • * : 0回以上の繰り返し
  • [] : 文字クラス

例:grep '^test' test.txt は"test"で始まる行を検索

テキストの並び替え:sort

sortは、テキストを様々な基準で並び替えます。

基本的な並び替え

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

試してみよう:

  1. sort items.txt - アルファベット順に並び替え
  2. sort -n items.txt - 数値として並び替え
  3. sort -r items.txt - 逆順に並び替え

sortの便利なオプション

オプション説明使用例
-n数値として並び替えsort -n numbers.txt
-r逆順sort -r file.txt
-u重複を除去sort -u file.txt
-k特定のフィールドでソートsort -k2 data.txt
-tフィールド区切り文字を指定sort -t',' -k2 data.csv

その他の便利なテキスト処理コマンド

uniq - 重複行の処理

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

uniqは連続する重複行を処理します:

  • sort duplicates.txt | uniq - 重複を除去
  • sort duplicates.txt | uniq -c - 出現回数をカウント
  • sort duplicates.txt | uniq -d - 重複行のみ表示

wc - 単語や行数のカウント

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

wc(Word Count)の使い方:

  • wc sample.txt - 行数、単語数、バイト数を表示
  • wc -l sample.txt - 行数のみ
  • wc -w sample.txt - 単語数のみ
  • wc -c sample.txt - バイト数のみ

パイプを使った組み合わせ

複数のコマンドをパイプ(|)で繋げることで、強力な処理が可能になります。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

パイプの活用例:

  1. grep error app.log | wc -l - エラーの数をカウント
  2. cat app.log | grep -v info | sort - info以外をソート
  3. grep error app.log | sort | uniq -c - エラーの種類と回数

実践演習

以下の演習に挑戦してみましょう:

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

課題

  1. Engineering部門の従業員を表示
  2. 給与順(3列目)で並び替え
  3. 部門ごとの人数をカウント
  4. 最高給与の従業員を表示

解答例:

# 1. Engineering部門
grep Engineering employees.csv

# 2. 給与順で並び替え
sort -t',' -k3 -n employees.csv

# 3. 部門ごとの人数
cut -d',' -f2 employees.csv | sort | uniq -c

# 4. 最高給与
sort -t',' -k3 -nr employees.csv | head -n1

高度なテクニック

複数ファイルの処理

# すべての.logファイルからエラーを検索
grep -n error *.log

# 複数ファイルの合計行数
wc -l *.txt | tail -n1

正規表現の活用

# メールアドレスを検索
grep -E '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' file.txt

# IPアドレスを検索
grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' log.txt

よくある使い方のポイント

1. grepの検索パターン

# 単語境界を使った正確な検索
grep '\<word\>' file.txt

# 複数のパターンを検索
grep -E 'error|warning|critical' log.txt

2. sortの数値処理

# 人間が読みやすい形式のサイズでソート
du -h * | sort -h

# バージョン番号でソート
sort -V versions.txt

まとめ

このレッスンでは、基本的なテキスト処理コマンドを学びました。これらのコマンドを組み合わせることで、複雑なテキスト処理も簡単に行えるようになります。

次のレッスンでは、ファイルの検索方法について学びます。

💡 パイプ(|)を使いこなすことが、Linuxでの効率的な作業の鍵です!

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行