こんにちは、多くのファイルを含むディレクトリに移動し、たとえば test_HTTP_abc.txt などのファイル名を検索し、HTTP文字列パターンを検索するスクリプトを作成します。この文字列が含まれている場合は、変数を何かに等しく設定します。
何かのようなもの:
変数1=0
06 が含まれている場合は 06 を検索する then var1=1 else var1=0 end if
しかし、UNIXスクリプトでは. ありがとう
こんにちは、多くのファイルを含むディレクトリに移動し、たとえば test_HTTP_abc.txt などのファイル名を検索し、HTTP文字列パターンを検索するスクリプトを作成します。この文字列が含まれている場合は、変数を何かに等しく設定します。
何かのようなもの:
変数1=0
06 が含まれている場合は 06 を検索する then var1=1 else var1=0 end if
しかし、UNIXスクリプトでは. ありがとう
おそらく最も簡単なことは次のとおりです。
if test "${filename#*HTTP}" = "$filename"; then
# the variable does not contain the string `HTTP`
var=0
else
var=1
fi
一部のシェルでは、[[
比較で正規表現の一致が許可されていますが、そのような移植性のないコードをスクリプトに導入する必要はありません。
このような?
var=0
if fgrep -q 06 /path/to/dir/*HTTP*
then
var=1
fi
fgrep
いずれかのファイルに一致する場合は 0 ("true") を返し、それ以外の場合 (一致する入力ファイルがない場合を含む) は true ではありません。
一致するファイルのリストが必要な場合は、 を試してくださいfgrep -l
。
まあ、私はあなたのためにスクリプトを書くつもりはありません、あなたは学ぶ必要があります:)
小さなタスクに分割すると簡単です。
このls
コマンドは、ディレクトリの内容を見るためのものです。コマンドを使用して、find
次のようにもう少し直感的にすることもできますfind /some/folder -name "*string*"
コマンドの出力を選別すること。コマンドの出力を変数に保存するか、パイプを使用して保存できます。
この出力をawk
( link )、grep
( link ) などで検索できます。
変数の設定は bash でも簡単です。http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-5.html
foundit=1
誰かに言われるよりも、まずこのパズルを解いてみてはいかがでしょうか :D パズルのどこで行き詰ったか教えてください。