嗨,我正在使用grep函数对我的/etc/passwd文件进行搜索,以检查输入的GID是否与系统GID匹配。但我试图做一个grep函数,但只显示echo内容,而不是显示所有匹配的GID。下面是我的输出:
elif grep -n $gid /etc/passwd|cut -f4 -d":"
then
echo "$gid exist!"
exit1
最佳答案
可以使用选项“-o”简化命令,该选项只打印匹配行的匹配部分。
还必须使用正则表达式来确保具有正确的GID,而不是部分GID或UID。
grep命令应该类似于:
grep -o -E "^[^:]+:[^:]*:[0-9]+:$gid:" /etc/passwd
整个解决方案是:
if [ condition ] ; then
command
elif [ -n `grep -o -E "^[^:]+:[^:]*:[0-9]+:$gid:" /etc/passwd` ] ; then
echo "$gid exists!"
exit 1
fi
关于linux - 提示grep仅显示匹配结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25755759/