shell/bash 两个变量的提取和判断,即:实现两个条件同时存在

例如文件里是如下信息:
1234
qwer
5678
输出信息的需求为: 信息“1234”必须存在 并且 一定不可以出现 qwer,为期望的输出信息。 用怎样的方式 写这个命令语句呢? 谢谢。

awk -v RS="" '/1234/&&!/qwer/' file.txt

你的这个例子,由于出现了qwer,所以输出为空。

RS(记录分隔符)默认为换行符,但这里将所有文件内容作为一条记录来整体看待,以便判断是否含有要求的内容,所以清除了记录分隔符。

追问

你好,我还是没有明白, 这个方法 用两个If语句嵌套, 是可以实现的, 比如 先判断1234存在, 再判断qwer的状态, 而且 1234 qwer是属于log文件内不同的 两行, 所以 想用一个比较简练的方法表达。

追答

我有点不明白你的意思。
可否先给出你的方法,如何用两个if语句嵌套?
然后我再看看是否可以优化。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-01
#!/bin/bash

one=`grep 1234 test.txt`
two=`grep qwer test.txt`

if [ ! -z $one ] && [ -z $two ] ;
then
        echo "期望的输出信息"
fi

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网