小编Bas*_*erg的帖子

如果下一行匹配,则使用 awk 打印行 + 下两行

我有一个这样的列表来捕获 joomla 版本

./somedir/bla/old/libraries/cms/version/version.php
        public $RELEASE = '2.5';
        public $DEV_LEVEL = '24';
./somedir/bla3/www/libraries/cms/version/version.php
        public $RELEASE = '2.5';
        public $DEV_LEVEL = '9';
./somedir/bla4/www/libraries/cms/version/version.php
./somedir/bla5/www/w/scripts/version.php
./somedir/bla6/www/libraries/cms/version/version.php
./somedir/bla7/www/libraries/cms/version/version.php
        public $RELEASE = '2.5';
        public $DEV_LEVEL = '9';
Run Code Online (Sandbox Code Playgroud)

public我想要的是,如果位于下一行,则仅显示该行+接下来的两行。else 行必须被忽略

所以结果应该是:

./somedir/bla/old/libraries/cms/version/version.php
        public $RELEASE = '2.5';
        public $DEV_LEVEL = '24';
./somedir/bla3/www/libraries/cms/version/version.php
        public $RELEASE = '2.5';
        public $DEV_LEVEL = '9';
./somedir/bla7/www/libraries/cms/version/version.php
        public $RELEASE = '2.5';
        public $DEV_LEVEL = '9';
Run Code Online (Sandbox Code Playgroud)

我尝试过使用 awk 和这个 awk 脚本

BEGIN{ RS=""; FS="\n" }
 /public/ {
    for (i=1; i<=NF; i++) { …
Run Code Online (Sandbox Code Playgroud)

awk

3
推荐指数
1
解决办法
1060
查看次数

标签 统计

awk ×1