mac 標準出力された結果をファイルに書き込む

  • 作成日 2022.10.21
  • mac
mac 標準出力された結果をファイルに書き込む

macで、コマンドを実行して、標準出力された結果をファイルに書き込む手順を記述してます。「 tee 」コマンドを使用します。

環境

  • ProductName: macOS
  • ProductVersion: 11.5.2
  • BuildVersion: 20G95

標準出力された結果をファイルに書き込む

標準出力をファイルに書き込むには、コマンド後に「 |(パイプ) 」で「 tee 」コマンドを使用します。

例えば「ping」の実行結果を、ファイル「ping.log」に書き込む場合は、以下のようにします。

ping 8.8.8.8 | tee ping.log

<出力結果>
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=115 time=40.737 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=6.273 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=5.955 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=115 time=6.905 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=115 time=5.907 ms

※「control + c」で停止します

ファイルに書き込まれているかは、「cat」コマンドなどを実行して確認してみます。

cat ping.log

<出力結果>
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=115 time=40.737 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=6.273 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=5.955 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=115 time=6.905 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=115 time=5.907 ms

標準出力に表示された結果が書き込みされていることが確認できます。

ファイルに追記

オプション「-a」を使用するとファイルに追記することができます。

ping 8.8.8.8 | tee -a ping.log

<出力結果>
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=115 time=6.489 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=110.983 ms

追記されていることが確認できます。

cat ping.log

<出力結果>
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=115 time=40.737 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=6.273 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=5.955 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=115 time=6.905 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=115 time=5.907 ms
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=115 time=6.489 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=110.983 ms

複数のファイルに書き出し

以下のように、ファイル名を空白で区切って指定することで、複数のファイルに書き出すことも可能です。

ping 8.8.8.8 | tee ping.log ping2.log