sed或perl模式匹配,然后是多个操作

时间:2015-10-22 19:23:04

标签: sed match

我想在一行的末尾搜索变量数值,一旦找到,做两件事:

  • 将某些内容添加到该行的末尾(例如,html标记)
  • 向下移动与该数值一样多的行,并在那里添加一行(例如,关闭前面的html标记)。

请问快速指示?附件是我的示例数据和所需更改的屏幕截图。请注意,在某些情况下,如果没有成员,则行末不会有任何数值。 Sample data

2 个答案:

答案 0 :(得分:0)

您的数据结构良好。使用sed完全没问题 您需要识别标题,然后对它们进行操作。

输入

header 1
    item 1.1
    item 1.2
    item 1.3
header 2
    item 2.1
    item 2.2
    item 2.3
header 3
    item 3.1
    item 3.2
    item 3.3

命令

sed -r '/^\S/{s@$@<wrap>@; 1!s@^@</wrap>\n@}; $s@$@</wrap>@' input

输出

header 1<wrap>
    item 1.1
    item 1.2
    item 1.3
</wrap>
header 2<wrap>
    item 2.1
    item 2.2
    item 2.3
</wrap>
header 3<wrap>
    item 3.1
    item 3.2
    item 3.3
</wrap>

答案 1 :(得分:0)

好的,我想我现在会解决这个问题(请参阅问题中的示例数据):

angular.module('widgets').config(['$stateProvider', 
    function($stateProvider) {
        $stateProvider.
        state('widgets', {
            url: '/widgets',
            abstract: true
        }).
        state('widgets.create', {
            url: '/create',
            views: {
                'content@': {
                    templateUrl: 'modules/widgets/views/widgets.create.client.view.html',
                }
            }
        });
    }
]);