-1

こんにちは、多くのファイルを含むディレクトリに移動し、たとえば test_HTTP_abc.txt などのファイル名を検索し、HTTP文字列パターンを検索するスクリプトを作成します。この文字列が含まれている場合は、変数を何かに等しく設定します。

何かのようなもの:

変数1=0

06 が含まれている場合は 06 を検索する then var1=1 else var1=0 end if

しかし、UNIXスクリプトでは. ありがとう

4

3 に答える 3

2

おそらく最も簡単なことは次のとおりです。

if test "${filename#*HTTP}" = "$filename"; then
  # the variable does not contain the string `HTTP`
  var=0
else
  var=1
fi

一部のシェルでは、[[比較で正規表現の一致が許可されていますが、そのような移植性のないコードをスクリプトに導入する必要はありません。

于 2013-01-14T13:52:08.580 に答える
1

このような?

var=0
if fgrep -q 06 /path/to/dir/*HTTP*
then
    var=1
fi

fgrepいずれかのファイルに一致する場合は 0 ("true") を返し、それ以外の場合 (一致する入力ファイルがない場合を含む) は true ではありません。

一致するファイルのリストが必要な場合は、 を試してくださいfgrep -l

于 2013-01-14T13:51:14.473 に答える
-1

まあ、私はあなたのためにスクリプトを書くつもりはありません、あなたは学ぶ必要があります:)

小さなタスクに分割すると簡単です。

この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 パズルのどこで行き詰ったか教えてください。

于 2013-01-14T13:49:58.263 に答える