grep表示字符串后的n位数

时间:2016-04-13 15:22:35

标签: linux bash shell grep cut

AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this);

    // 2. Chain together various setter methods to set the dialog characteristics
    builder.setTitle("Title Text").
            .setMessage(*String comprised of your desired notification content*)
            .setCancelable(true)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    //for clicking OK

                }
            })

            .show();

    // 3. Get the AlertDialog from create()
    AlertDialog dialog = builder.create();

我需要从命令的输出中查找或剪切(如上所述)&得到的输出只有965997,而这个数字只能是6或7位,但后面总是跟着。

2 个答案:

答案 0 :(得分:2)

使用grep -oP

s='Release build trunk.965997 (965997) - 155mc13bcf03t - 2016-04-13T14:46:44.823+0000'
grep -oP 'trunk\.\K\d+' <<< "$s"

965997

即。找到后跟一个或多个数字的trunk.文本。它使用\Ktrunk.之后重置匹配的信息,并仅打印后面的数​​字。

答案 1 :(得分:0)

使用sed:

echo "Release build trunk.965997 (965997) - 155mc13bcf03t - 2016-04-13T14:46:44.823+0000" | sed -n 's/.*\.\([0-9]\{6,7\}\).*/\1/p'

此外,如果你可以依赖这个数字,总是在括号之间:

sed -n 's/.*(\(.*\)).*/\1/p'