2016-04-22 5 views
-3

どのように私トレイバー複数のCVSファイルを含むフォルダといえます:カウントラインとテキスト文字列

  1. カウント非空行
  2. 含むカウントライン: a。 "タイムアウト" b。 "死亡率" c。 「初期化」

パイプという形式のCSVファイルへ:

ファイル名「行数」のLinuxのコマンドラインで「タイム・アウト」「死亡」「初期化」

編集:

wc -l ./*.csv > result.txt 

と行数を取得することができましたが、前述のように検索文字列が不明です。

私はshellcheck.netに応じて編集し、これを得た:

#!/bin/bash 

find ./ -type f -exec cat {} > /tmp/file.tmp \; 
cmd /tmp/file.tmp | grep Time Out | grep Mortality | grep Init > /tmp/file2.tmp 
wc -l /tmp/file.tmp 
rm /tmp/file.tmp 
+1

こんにちは、StackOverflowのへようこそ。私たちがあなたのコード作業をするためのものではないことを忘れないでください。しかし、あなたが何らかの研究を行い、何かをコーディングし始めたことを示すならば、正しい方向に進むのを助けます。 –

+0

あなたの質問は不明です - あなたが意味することをより明確に考える必要があります。たとえば、 'a'、' b'、 'c'を含む行を数えたいとしますが、* 3行全てが行に表示される必要があるかどうかを示すことはできません。回答者は、あなたが3つすべてを同じ行にしたいと思っています。 –

答えて

0

あなたはこのスクリプトを使用することができます(定期的な使用のために最適ではないかもしれません):

!/bin/bash 

find ./ -type f -name "*.csv" -exec cat {} \; | grep Time Out | grep Mortality | grep Init > /tmp/file.tmp 
wc -l /tmp/file.tmp 
rm /tmp/file.tmp 
+0

それは30個の500KBサイズのファイルのうち13GBのファイルを生成します – Vestlink

+0

タイムアウト、死亡率、およびInitは ""になるはずです – Vestlink

+0

これは実際にあまり良くありません。 'shellcheck.net'を通して実行してみてください。 –

関連する問題