Skip to content

型10: テキストファイルの読み書き

クラス: 初心者
所要時間: 約30分
前提知識: 型1〜9 完了済み


1. 解説

ファイル読み取りのパターン

Claude Code にファイルを「読ませる」指示の出し方:

bash
# ファイルの内容を確認する
「config.json を読んでください」

# ファイルを読んで分析する
「src/app.js を読んで、関数の一覧を教えてください」

# 複数ファイルを比較する
「src/old.js src/new.js を読んで、差分を説明してください」

# 一部だけ読む
「src/app.js の先頭50行を読んでください」

ファイル書き込み・編集のパターン

bash
# 既存ファイルに追記
「README.md の末尾にトラブルシューティングセクションを追加してください」

# 一部を変更
「src/config.js PORT の値を 3000 から 8080 に変更してください」

# ファイル全体を書き直し
「src/utils.js TypeScript に書き直してください」

# 特定の関数を変更
「getUserById 関数をasync/awaitに書き直してください」

注意:ファイル編集時の確認フロー

1. AI が変更計画を提示
   「以下の変更を行います:...」

2. ユーザーが確認
   [y/n] で承認・却下

3. 変更が適用される
   ● Edit: src/app.js

4. 自分でファイルを確認
   cat src/app.js  または  claude で再度読ませる

2. 実践

Step 1: CSVファイルの読み取りと加工

bash
mkdir -p ~/claude-practice/lesson10
cd ~/claude-practice/lesson10

cat > employees.csv << 'EOF'
id,name,department,salary
1,Alice,Engineering,85000
2,Bob,Marketing,62000
3,Carol,Engineering,92000
4,Dave,HR,58000
5,Eve,Engineering,78000
EOF
bash
claude
employees.csv を読んで、以下の情報を教えてください:
1. 部署ごとの人数
2. 部署ごとの平均給与
3. 最高給与の社員と最低給与の社員

Step 2: Markdown ファイルの編集

bash
cat > notes.md << 'EOF'
# プロジェクトノート

## やること
- APIの設計
- データベース設計

## 完了
(なし)
EOF
notes.md を読んで、「やること」のリストに以下を追加してください:
- フロントエンドの実装
- テストコードの作成
- デプロイ設定

変更後の確認:

bash
cat notes.md

Step 3: 設定ファイルの安全な更新

bash
cat > config.json << 'EOF'
{
  "server": {
    "host": "localhost",
    "port": 3000
  },
  "database": {
    "host": "localhost",
    "port": 5432,
    "name": "mydb"
  },
  "debug": true
}
EOF
config.json を読んで、以下の変更をしてください:
- server.port を 8080 に変更
- debug を false に変更
- database に "pool": { "max": 10, "min": 2 } を追加

Step 4: 複数ファイルにまたがる読み取り

bash
echo "const DB_HOST = 'localhost';" > src/db.js
echo "const APP_PORT = 3000;" > src/server.js
src/db.js と src/server.js を両方読んで、
設定値(ホスト名・ポート番号)がどのファイルに分散しているか教えてください。
統一して管理するための改善案を1つ提案してください。

3. 確認課題(Assignment)

課題 10-1: ログファイルの解析

bash
cat > app.log << 'EOF'
2024-01-15 10:00:01 INFO Server started on port 3000
2024-01-15 10:05:32 ERROR Database connection failed: ECONNREFUSED
2024-01-15 10:05:33 INFO Retrying connection...
2024-01-15 10:05:35 INFO Database connected
2024-01-15 10:10:22 WARN Request timeout: GET /api/users (5000ms)
2024-01-15 10:15:44 ERROR Unhandled exception: TypeError: Cannot read properties of null
2024-01-15 10:20:01 INFO 100 requests processed
EOF
app.log を読んで、以下をまとめてください:
1. ERRORとWARNのログだけを抽出
2. 問題の深刻度順に並べ替えて報告
3. 対処が必要なエラーに対して改善提案

達成条件: ERROR/WARN が正確に抽出され、改善提案が具体的であること

課題 10-2: ファイルの段階的な更新

notes.md に対して、3回の別々の指示でコンテンツを追加せよ:

1回目: 「完了セクションに「APIの設計」を移動せよ」
2回目: 「新しく「メモ」セクションを末尾に追加せよ」
3回目: 「全体を読んで、TODOの優先度を高・中・低に分類せよ」

達成条件: 3回の指示がすべて正確に反映されていること

課題 10-3: 設定値の一貫性チェック

bash
cat > .env.example << 'EOF'
DB_HOST=localhost
DB_PORT=5432
APP_PORT=3000
SECRET_KEY=your-secret-here
EOF
config.json と .env.example を両方読んで、
設定値に矛盾や重複がないか確認してください。
問題があれば指摘してください。

達成条件: 2つのファイル間の設定値の一致・矛盾が正確に報告されること


自己チェックリスト


次の型

型11: プロジェクト概要の把握 →

Claude Code Dojo