您好我想编写一个脚本,该脚本将转到包含许多文件的目录并搜索文件名,例如test_HTTP_abc.txt用于此并搜索 HTTP 字符串模式,如果它包含此字符串,则将变量设置为等于:
类似的东西:
VAR1 = 0
搜索06 如果它包含06那么 VAR1 = 1 其他 VAR1 = 0 结束如果
但是在unix脚本中。谢谢
答案 0 :(得分:2)
可能最简单的事情是:
if test "${filename#*HTTP}" = "$filename"; then
# the variable does not contain the string `HTTP`
var=0
else
var=1
fi
有些shell允许[[
比较中的正则表达式匹配,但没有必要在脚本中引入那种不可移植的代码。
答案 1 :(得分:1)
喜欢这个吗?
var=0
if fgrep -q 06 /path/to/dir/*HTTP*
then
var=1
fi
如果其中一个文件中存在匹配,则 fgrep
将返回0(“真值”),否则返回非真值(包括没有匹配输入文件的情况)。
如果您需要匹配文件列表,请尝试fgrep -l
。
答案 2 :(得分:-1)
好吧,我不打算为你写剧本,你必须学习:)。
如果你把它分解成更小的任务就很容易;
ls
命令用于查看导演的内容。您还可以使用find
命令更直观,例如find /some/folder -name "*string*"
筛选命令的输出。您可以将命令的输出存储到variable或使用pipes。
您可以使用awk
(link),grep
(link)等搜索此输出。
在bash中设置变量也很容易; http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-5.html
foundit=1
为什么不首先尝试解决这个难题,而不是有人告诉你:D告诉我们你陷入困境的地方。