我有以下代码段
PR
现在我需要检查输出行是否具有相同的值或不同。 所以在上面的例子中它是不同的。 [disk1s1和disk1s4]。如何在shell中实现这一目标。
结果中我可能有两行或更多行。
答案 0 :(得分:4)
尝试修改您的命令,如果您有任何重复的结果,输出将附加“相同”
$ mount | awk '/^\/dev/{print $1,a[$1]?"same":"";a[$1]=1}'
/dev/sdb1
/dev/sdb3
/dev/sda1
/dev/sdb1 same
/dev/sdb3 same
简要说明,
grep
,因为awk
可以执行grep
可以做的任何事情。/^\/dev/
:搜索以'/ dev'a[$1]?"same":""
如果设置了[$ 1],则在$1
后面打印“相同”,否则不执行任何操作a[$1]=1
:不要忘记在最后设置$1
。答案 1 :(得分:1)
未经测试,但类似:
if (( $(mount | grep -o '^/dev[^ ]*' | sort -u | wc -l) > 1 ))
then
echo different values
fi
grep中的-o选项和稍微修改的模式仅返回第一个字段。 sort的-u选项会丢弃重复项。