如何打印匹配的模式,后跟包含一些值的括号?

时间:2016-11-04 14:58:01

标签: unix grep

我目前遇到的情况是需要打印匹配的模式,然后是包含不同值的括号。例如:

options

给出整行。

我希望o / p只是:

$(function () {
$.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=aapl-v.json&callback=?', function (data) {

    // create the chart
    var options = {
        chart: {
            alignTicks: false,
            renderTo: 'container'
        },

        rangeSelector: {
            selected: 1
        },

        title: {
            text: 'AAPL Stock Volume'
        },

        series: [{
            type: 'column',
            name: 'AAPL Stock Volume',
            data: data,
            dataGrouping: {
                units: [[
                    'week', // unit name
                    [1] // allowed multiples
                ], [
                    'month',
                    [1, 2, 3, 4, 6]
                ]]
            }
        }]
    };
    var chart = Highcharts.stockChart(options); // alternatively new Highcharts.StockChart(options);
});

});

我知道在echo "abc(123) += abc(245678) ^%$&** abc(3)" | grep -o 'abc(.*)' 中,结束括号被视为行中的最后一个括号,因此打印整行。

我试图想办法找到相应开放式支架的闭合支架的位置,但无法找到。请帮助我。

1 个答案:

答案 0 :(得分:3)

您必须使用[^)](否定)匹配。像这样。

echo "abc(123) += abc(245678) ^%$&** abc(3)" | grep -o 'abc([^)]*)'

如果列表的第一个字符是插入符^,那么它匹配列表中没有的任何字符。