ストリームフィルタまたはパラメータ専用ツールでスクリプトを作成しますか? [閉鎖]

ストリームフィルタまたはパラメータ専用ツールでスクリプトを作成しますか? [閉鎖]

私は単純なデータ/テキストファイルを処理するためのツールボックスであるシェルヘルパースクリプトセットを作成しています。

次のようないくつかの簡単なツールがあります。dateToTimestampまたはshowParagraphHeads

私の質問は次のとおりです

フローフィルタで作成する必要がありますか、パラメータツールでのみ作成する必要がありますか?


簡単に説明します。一部の標準シェルツールはawksedまたはなどの明らかにストリームフィルタですが、tr他のsortツールは同様のパラメータでのみ動作しますdate(setter / getterですが、何でも構いません)。

showParagraphHeads:

各テキストブロックの最初の行を表示するスクリプトを書くと(awk / sedの短縮にもかかわらず)、答えは明らかです。これを行うには、複数行のストリーム/ファイルが必要なためです。

dateToTimestamp:

しかし、日付をYMDhmsからタイムスタンプに変換する内容を作成すると、ストリームフィルタまたはパラメータ専用のツールとして使用できます。(と同様date)使用法は次のとおりです。 dateToTimestamp DATE_IN_YMDhms


今、どちらの方法にも長所と短所があります。時にはパイプとストリームフィルタを使用する方が簡単です。別のケースでは、より複雑なデータがあり、awk {system()}特定の列で作業する必要がある場合は、パラメータベースのツールを使用する方が簡単になります。


私はこれが一般的な質問であることを知っていますが、おそらく* nixの世界のどこかに存在するかもしれないいくつかの規則や指示を知っているでしょう。

ありがとうございます。

答え1

~の一部Unixの哲学「共通インターフェイスなので、テキストストリームを処理するプログラムを作成してください」またはストリームフィルタを使用します。

つまり、これらのツールをどのように使用したいですか(または必要ですか)?

この質問に対する答えは、ツールごとにあなたの質問に答えるようにしてください。なぜなら、Unix哲学のもう一つの部分は、単純な実装を備えた機能的に単純なプログラムが他のプログラムと一貫して動作するプログラムよりも優れているからです。

したがって、あなたの例では、日付形式を変換するユーティリティが非常に単純な場合(パラメータを受け入れる場合)、要件を満たしている場合にのみパラメータを受け入れます。

関連情報