特定のshebang行を含むすべてのスクリプトを見つけたいです。具体的には、次の基準に一致するすべてのファイルが必要です。
- ほとんどはプレーンテキストファイルです(
gzexe
非常に使い慣れていないファイルを生成します)。 - 最初の行には
#!/bin/sh
or#! /bin/sh
(スペースを含む) のみが含まれます。
find
、sed
およびgrep
(使用可能)を使用してfile
これを実行したいと思います。
一部のスクリプトには拡張子がないか、無効な拡張子があるため、ファイル名は役に立ちません。また、私が望むものではない something.sh
shebang行があるかもしれません。#!/bin/bash
また、次のようなファイルに触れることもあります。
#!/bin/sh ちょっと待って、ちょっと待って…
行1は空で、shebangは行2にあります。私が望むものではありません。。
Shebangラインを見つけることができますが、find|grep
ラインを見つける方法がわかりません特に最初の行にファイルの。
事前に助けてくれてありがとう。
ベストアンサー1
GNU grepがある場合
grep -rIzl '^#![[:blank:]]*/bin/sh' ./