2016-07-17 8 views
2

log.txtファイル(日付の多いファイル)を取得し、ソートされた値を含むtemp.txtを作成する、短いスーパースクリプト(質問からの質問)を書きましたbash関数の引数とパイプラインを同時に使用する

cat $1 | date_isolate | sort | uniq | create_relevant $1 

$1log.txt引数でなければなりません: - 私はこのコード行を持っています。

質問:私の関数create_relevant - それはパイプラインを介して標準入力を取得し、log.txtの別の引数を取得したいと思います - どのように関数内の各引数をマークしますか?パイプラインの場合は$1log.txtの場合は$2log.txtの場合は$1、パイプラインの場合はreadです。

+1

[編集ヘルプ](http://stackoverflow.com/editing-help)をご覧ください。 – Cyrus

+1

パイプラインは引数とは関係ありません。 stdinとstdoutをリダイレクトします。これは基本的なUnixのものです。 – MAP

+0

関数全体と、予想される入力と出力を表示できますか? – Will

答えて

0

create_relevantSTDINから入力を取得するので、最も一貫性のあるインターフェースがSTDOUTに出力を送ることであろう。だから、全体のパイプラインは次のようになります。

date_isolate < "$1" | sort -u | create_relevant > temp.txt 

それとも、この怠惰なバージョンでtemp.txtを避ける:

date_isolate < "$1" | sort -u | create_relevant | sponge "$1" 

spongeは、それが必要になるまで上書きされる "$ 1" を防止utilのです)

関連する問題