Grep多件事无序

时间:2016-03-23 16:24:41

标签: linux database bash grep cat

我目前正在使用bash创建数据库。我想添加一个“和”功能。此函数将搜索两个内容,并仅返回与两个搜索匹配的内容。我将如何实现这一目标?

这是我的代码:

var A = [5, 3];
var B = [3, 4];

function slope(a, b) {
    if (a[0] == b[0]) {
        return null;
    }

    return (b[1] - a[1]) / (b[0] - a[0]);
}

function intercept(point, slope) {
    if (slope === null) {
        // vertical line
        return point[0];
    }

    return point[1] - slope * point[0];
}

var m = slope(A, B);
console.log(m);

var b = intercept(A, m);
console.log('intercept: ' + b);

2 个答案:

答案 0 :(得分:0)

将第一个grep的输出作为输入传递给第二个grep。只会返回包含$search1$search2的行。

function and {
    if [[ $(grep -i "$search1" people.dat | grep -i "$search2") ]]; then
        echo yes
    fi
}

答案 1 :(得分:0)

@munircontractor is on the right track。你可以做得更简单:

function and {
    if grep -i "$search1" people.dat | grep -qi "$search2"; then
        echo yes
    fi
}

如果没有匹配,第一个grep的输出将为空,退出代码将被忽略,输出将通过管道发送。第二个grep将在找到匹配后立即停止搜索,不会打印任何内容,是否找到某个内容将确定整个管道的退出代码。

其他提示:

  • 您只需使用while true
  • 即可
  • 您可能希望使用read -r来避免将反斜杠视为转义特殊字符