あなたの習慣について教えてください!!

現在プログラミングを打っていますが動きません。

動作内容は下記の例で
<1>2008-07-07のディレクトリを作成する。
<2>*.csv* の中からgrepでabcdeを検索する
<3><2>の条件に当てはまり grep で 2008-07-07を検索してwcでカウントしてファイルに出力します。

<現象>ディレクトリが作成されファイルが作成されるが、ファイルの中身がカウントされない。(0が出力される)

投入コマンド ./out.sh 2008-07-07  
ファイル名 引数
out.sh
----------------------------------------
mkdir -pm 777 /work/abc-$1
grep -h '/abcde' *.csv* | grep $1 | wc - > /work/abc-$1/gd-$1.csv

--------------------------------------------

どなたか心優しい方がりましたら教えてください。

A 回答 (2件)

#1です。



回答したあとで、質問の内容が何か変だなあと思いつつちょっと考えてみたんですが、
もしかして、grepの結果をファイルに落としつつ、その行数を表示したい、ということですか?

でしたら、以下のようにしてください。

grep -h '/abcde' *.csv* | grep $1 | tee /work/abc-$1/gd-$1.csv | wc -l

teeというのは、標準入力をファイルに落としつつ標準出力に吐く、というものです。標準入力がファイルと標準出力に分岐するイメージを図にするとTの字型になるところから tee(ティー) という名前がつきました。
    • good
    • 0
この回答へのお礼

プログラムが無事に動きました。わかりやすい回答ありがとうございました。また何かありましたらよろしくお願いいたします。

お礼日時:2003/08/13 11:11

wc - という部分がおかしいと思います。



wcの正しいオプション(-c,-w,-l等)を与えるか、もしくは引数なしで単に wc と書いてください。

余談ですが、複数箇所で共通になってる部分はシェル変数に入れた方がいいです。
たとえば、
work_dir="/work/abc-$1"
mkdir -pm 777 "$work_dir"
、、、といった感じで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!