否定の正規表現を絡めて検索できると、より柔軟性の高い検索ができると思います。検索文字列の直後に除外文字列がない場合に、検索文字列が引っかかります。データ構造キューについても復習がてら実装してみます。キューのデータ構造は配列で実現し、リングバッファにします。enqueueとdequeueの関数を実装しています。ターミナル※MACターミナル(BSD系)での動作確認です。seqコマンドをforループさせて連番の番号を作成します。シェルgrepの検索文字列が多数となった場合には、検索文字列をファイルでリスト化すると後々の管理も楽です。データ構造データ構造の復習がてらに、スタックを実装してみます。スタックをint型の配列で定義し、スタックの位置をtail変数で管理します。初期化時のtail変数は-1としました。シェル※MACターミナル(BSD系)での動作確認です。スクリプトの配置場所を意識しないですむので便利。2018年3月15日シェルスクリプトの配置場所を意識しないですむので、シェルスクリプトの中から他のスクリプトを実行する時には、絶対パスで指定すると良いかと思います(一旦スクリプト自体の絶対パスを取得してから、実行したいスクリプトの指定)。リストの末尾の要素を削除する場合には、pop()メソッドを下記の形式で使います。下記の形式で、npArrayの全ての要素の中から最大値を算出します。