【初級】パイプライン1

問題

現在のディレクトリにあるすべてのテキストファイル(.txt)の行数を合計してください。

※今回の問題を試す時は、touchコマンドで拡張子がtxtのファイルを数個程作成してください。


解答

$ find . -name "*.txt" -exec cat {} + | wc -l

解説

find . -name "*.txt":

  • find .: 現在のディレクトリ(.)からファイルを検索
  • -name "*.txt": 拡張子が.txtのファイルのみを対象とする

-exec cat {} +:

  • -exec: findコマンドで発見したファイルに対して、次のコマンドを実行
  • cat {} +: 各ファイルの内容を標準出力に結合する
  • {}: findコマンドで発見されたファイル名を表すプレースホルダー

| wc -l:

  • |: 前のコマンドの出力(結合されたファイルの内容)を次のコマンドの入力へパイプする
  • wc -l: 標準入力から渡されたテキストの行数をカウントする
マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。