【超便利】teeコマンドで結果をファイル出力|実例付きで徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年4月)

✔このような方へ向けて書かれた記事となります

「teeコマンドって何ができるのだろうか?」

「teeコマンドの使い方が知りたい」

「teeコマンドって実際にはどうやって使うの?」

✔当記事を通じてお伝えすること

  • teeコマンドの基本
  • teeコマンドの書き方
  • teeコマンドの実例

当記事では、teeコマンドについて、その基本から、実践向けの実例解説などを丁寧に進めていきます。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

teeコマンドについての基礎知識

teeコマンドはデータの書き込みを主な役割とするコマンドです。

まずはその概要を理解していきましょう。

  • teeコマンドの概要
  • teeコマンドの基本的な例
  • なぜteeコマンドが必要か

teeコマンドの概要

teeコマンドは、他のコマンドで実行した結果をファイルに書き込むと同時に、通常通りターミナルに出力する機能を持っています。

データをファイルに保存しながら、同時に別のコマンドに渡せるのです。

teeコマンドの基本構文はこちら。

tee [オプション] [ファイル名]

teeコマンドの基本的な例

以下の例では、`ls` コマンドの実行結果を、ファイル `output.txt` に書き込みつつ、画面にも表示しています。

$ ls | tee output.txt
archive.tar
archive.tar.bz2
archive.tar.gz
archive.tar.xz

$ cat output.txt
archive.tar
archive.tar.bz2
archive.tar.gz
archive.tar.xz

なぜteeコマンドが必要か

teeコマンドは以下のような場面で役立ちます。

  • コマンド実行結果をファイルに保存しつつ、他のコマンドと連携させたい
  • ログファイルにデータを記録しながら、同時に画面にも表示したい

teeコマンドを使うことで、柔軟なデータ操作が可能になります。

teeコマンドのオプション一覧

tee コマンドのオプションは少ないですが、以下に表としてまとめました。

オプション名概要
-aファイルへの追記モードで出力するecho “sample” | tee -a output.txt
-iシグナルを無視する(特にCtrl+Cなど)echo “sample” | tee -i output.txt
–helpteeコマンドのヘルプ情報を表示するtee –help
–versionteeコマンドのバージョン情報を表示するtee –version

teeコマンドを使った実践的な例

teeコマンドの実践例をご覧ください。

例を見ることで、どのように役立つかがイメージしやすくなります。

  • 複数ファイルへの出力
  • 標準エラー出力の取り扱い
  • パイプと組み合わせた利用

複数ファイルへの出力

teeコマンドを使って、複数のファイルへ同時出力が可能です。

以下の例では、`ls` コマンドの結果を `output1.txt` と `output2.txt` の2つのファイルに同時に書き込みます。

ls | tee output1.txt output2.txt

標準エラー出力の取り扱い

teeコマンドを使って、標準エラー出力も含めてファイルに書き込むことができます。

以下の例では、標準エラー出力も含めて `output.txt` に書き込みます。

コマンド 2>&1 | tee output.txt

lsコマンドで存在しないディレクトリを指定した例を見てみます。

$ ls noexist 2>&1 | tee output.txt
ls: 'noexist' にアクセスできません: そのようなファイルやディレクトリはありません

$ cat output.txt
ls: 'noexist' にアクセスできません: そのようなファイルやディレクトリはありません

パイプと組み合わせた利用

teeコマンドは、パイプを使ってほかのコマンドと連携できます。

以下の例では、`ls` コマンドの結果を `output.txt` に書き込みつつ、`grep` コマンドで特定の文字列を含む行だけを画面に表示します。

ls | tee output.txt | grep "itc"

またgrepコマンドとteeコマンドを入れ替えると、ファイル出力される文字列も変わってきます。

ls | grep "itc" | tee output1.txt

文字列検索ができる便利なgrepコマンドについての記事はこちら。

teeコマンドの便利なテクニック

teeコマンドを使ううえでの具体的で便利なテクニックをご紹介します。

  • ログファイルの追記
  • フィルタリングしながらの出力
  • ファイルへの出力と同時に編集
  • 他の便利なコマンドとの連携 (関連キーワード)

ログファイルの追記

`-a` オプションを使用することで、既存のログファイルに追記できます。

以下の例では、`output.txt` に追記モードで書き込みます。

ls | tee -a output.txt

フィルタリングしながらの出力

teeコマンドとパイプを組み合わせることで、特定の条件を満たすデータのみをファイルに出力することができます。

以下の例では、`ls` コマンドの結果から `.txt` で終わるファイル名のみを `output.txt` に書き込みます。

ls | grep ".txt$" | tee output.txt

grepコマンドとteeコマンドの順番に気をつけましょう。

ファイルへの出力と同時に編集

teeコマンドを使って、ファイルへの出力をおこないつつ、その内容を編集することも可能です。

以下の例では、`ls` コマンドの結果を `output.txt` に書き込みつつ、`sed` コマンドで文字列の置換をおこないます

ls | tee output.txt | sed 's/old_string/new_string/g'

文字列操作が高速でできるsedコマンドについての記事はこちら。

他の便利なコマンドとの連携 (関連キーワード)

tee コマンドは、他の便利なコマンドと連携させることで、さらに効果的に活用できます。

例えば、`find` や `awk`、`xargs` などと組み合わせることで、ファイル操作やテキスト処理も可能です。

詳しくはそれぞれのコマンドを以下の記事にてご覧ください。

findコマンドについてはこちら。

awkコマンドについてはこちら。

エラーの基本的なトラブルシューティング

以下に、teeコマンドのトラブルシューティング例を一覧にまとめました。

エラー内容説明対処法
書き込み権限がないファイルへの書き込み失敗ファイルへの書き込み権限がないため、teeコマンドが失敗する。ファイルのパーミッションを変更し、書き込み権限を与える。
存在しないディレクトリへのファイル作成失敗teeコマンドで指定したディレクトリが存在しないため、ファイル作成が失敗する。対象のディレクトリを作成するか、正しいディレクトリへのパスを指定する。
無効なオプション指定によるエラーteeコマンドで無効なオプションが指定された場合、エラーが発生する。tee –helpを使用して、使用可能なオプションを確認し、正しいオプションを指定する。

teeコマンドの関連リソースとリンク

teeコマンドや関連するコマンドをより深く学習したい方へ以下の方法をご案内します。

  • 公式ドキュメント
  • 便利なLinuxコマンドを習得
  • Linuxについての参考書

公式ドキュメントへのリンク

teeコマンドの詳細な使い方やオプションについては、公式ドキュメントを参照してください。

tee invocation (GNU Coreutils 9.5)
tee invocation (GNU Coreutils 9.5)

便利なLinuxコマンドを習得

teeコマンド以外にも、UNIXやLinuxで使用されるさまざまなコマンドがあります。

それらの使い方や応用例については、以下の記事を参照してください。

Linuxについての参考書

created by Rinker
¥2,970 (2024/12/03 22:52:42時点 楽天市場調べ-詳細)

まとめ:teeコマンドを使いこなすにはほかのコマンドも覚えよう

teeコマンドは、ファイルへの出力と同時に画面表示や他のコマンドとの連携ができる、非常に便利なコマンド。

基本的な使い方から応用例までを学ぶことで、効率的なデータ操作が可能になります。

teeコマンドをマスターしたら、次に以下のような関連キーワードや他のコマンドについて学ぶことをおすすめします。

grep コマンド: テキスト検索やフィルタリング

sed コマンド: テキストの置換や編集

awk コマンド: テキストデータの加工や分析

find コマンド: ファイル検索

これらのコマンドを習得することで、UNIXやLinuxシステムでの作業効率が大幅に向上します。

さらにスキルを高めるために、より高度なコマンド操作にも挑戦してみましょう。

タイトルとURLをコピーしました