【初級】パイプライン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: 標準入力から渡されたテキストの行数をカウントする