テキストの出力: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
試してみよう:
echo "Hello, Linux!"
- テキストを出力echo -n "No newline"
- 改行なしで出力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
試してみよう:
grep apple fruits.txt
- "apple"を含む行を表示grep -i Apple fruits.txt
- 大文字小文字を区別しない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
試してみよう:
sort items.txt
- アルファベット順に並び替えsort -n items.txt
- 数値として並び替え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
パイプの活用例:
grep error app.log | wc -l
- エラーの数をカウントcat app.log | grep -v info | sort
- info以外をソート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
課題
- Engineering部門の従業員を表示
- 給与順(3列目)で並び替え
- 部門ごとの人数をカウント
- 最高給与の従業員を表示
解答例:
# 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での効率的な作業の鍵です!