与えられたshebang行を持つすべてのスクリプトを見つけるには、find&sedを使用します。

与えられたshebang行を持つすべてのスクリプトを見つけるには、find&sedを使用します。

特定のshebang行を含むすべてのスクリプトを見つけたいです。具体的には、次の基準に一致するすべてのファイルが必要です。

  • ほとんどはプレーンテキストファイルです(gzexe非常に使い慣れていないファイルを生成します)。
  • 最初の行には#!/bin/shor #! /bin/sh(スペースを含む) のみが含まれます。

findsedおよびgrep(使用可能)を使用してfileこれを実行したいと思います。
一部のスクリプトには拡張子がないか、無効な拡張子があるため、ファイル名は役に立ちません。また、私が望むものではない something.shshebang行があるかもしれません。#!/bin/bash

また、次のようなファイルに触れることもあります。

#!/bin/sh
ちょっと待って、ちょっと待って…

行1は空で、shebangは行2にあります。私が望むものではありません。
Shebangラインを見つけることができますが、find|grepラインを見つける方法がわかりません特に最初の行にファイルの。
事前に助けてくれてありがとう。

ベストアンサー1

GNU grepがある場合

grep -rIzl '^#![[:blank:]]*/bin/sh' ./

おすすめ記事