令我惊讶的是,我在1小时后找不到答案.我想将一个数组传递给我的脚本,如下所示:
test.sh argument1 array argument2
Run Code Online (Sandbox Code Playgroud)
我不想把它放在另一个bash脚本中,如下所示:
array=(a b c)
for i in "${array[@]}"
do
test.sh argument1 $i argument2
done
Run Code Online (Sandbox Code Playgroud) 全部,
我正在检查最后一行文件中的错误信息,如果出现“错误”,我希望得到“是”结果。我的 shell 脚本如下所示:
[ $(tail -1 error.log | grep -E "Error") ] && echo "yes"
Run Code Online (Sandbox Code Playgroud)
然后我在标题中得到了类似上面的错误:
-bash: [: @: binary operator expected
Run Code Online (Sandbox Code Playgroud)
最后一行的错误信息如下:
[aaa,bbb,ccc, Error.ddd @ ]
Run Code Online (Sandbox Code Playgroud)
我认为这是因为错误消息,其中有 [@] 格式的内容导致了这个错误。但我不知道如何解决它。有没有人知道如何处理这个[@]问题。非常感谢
@csiu,非常感谢您的快速回复。
这里的技巧是使用双 "[" 如下:
[[ $(tail -1 error.log | grep -E "Error") ]] && echo "yes"
Run Code Online (Sandbox Code Playgroud) 所有,
我有一个巨大的xml文件,需要先检查root中"status"标记的值.与处理tag = item时相比,它甚至会占用内存的两倍.我不明白为什么.我在ubuntu 14.04中使用lxml版本2.3.2和python 2.7.3.xml的结构如下:
<root>
<status>s_value</status>
<count>c_value</count>
<items>
<item>***</item>
<item>***</item>
...
</items>
</root>
Run Code Online (Sandbox Code Playgroud)
我尝试按如下方式处理文件(忽略命名空间):
from lxml import etree
status = etree.iterparse('file.xml', tag='status')
for event, element in status:
value = element.text
element.clear()
del status
Run Code Online (Sandbox Code Playgroud)
这段代码仍然会占用大量内存,也需要很长时间(15秒).我尝试使用"break",它得到了相同的结果,但速度更快(1s),无法查看内存使用情况,因为速度很快.
from lxml import etree
status = etree.iterparse('file.xml', tag='status')
for event, element in status:
value = element.text
element.clear()
break
del status
Run Code Online (Sandbox Code Playgroud)
在运行第一个状态后似乎发生了一些事情,但由于状态中只有一个元素,我想知道处理的是什么?任何人都知道发生了什么?非常感谢
所有,
我使用preg_match来过滤一些数据,奇怪的是,它无法正常工作.我是regex的新手,我使用php live regex网站检查我的正则表达式,它正常工作.所以我不知道这里有什么问题.我想让preg_match在$ string中找到类似"a\_b"的内容:
$string="aaa\_bbb:ccc"
if(preg_match("/[a-zA-Z]\\_[a-zA-Z]/", $string)){
$snew = str_replace('\_', "_", $string);
}
Run Code Online (Sandbox Code Playgroud)
但奇怪的是,即使我在上面这个例子中有一个$ string,preg_match的结果是0.但是当我把它改为
preg_match("/\\_[a-zA-Z]/", $string)
Run Code Online (Sandbox Code Playgroud)
它工作正常并返回1.但当然这不是我想要的.任何的想法?非常感谢〜