zoukankan      html  css  js  c++  java
  • 借个例子说明sed的模式空间,以及针对模式空间的N,P,D用法

    下面是我们要处理的文本:题目要求是把所有散列在不同行的同一个中括号中的数据集中在一起, 见下表就秒懂了吧

    处理前的文本 处理后的文本
    [123456]
    [AS
    DEF]
    [ABCD
    123W
    F]
    [789ADC]
    [12
    34
    456AB
    WQ
    456
    WIU]

    [123456]
    [ASDEF]
    [ABCD123WF]
    [789ADC]
    [1234456ABWQ456WIU]


    先说指令:  sed '/^[/{:a;N;/^[/!{s/ [//g;ta}};P;D;' enter.txt

    这条指令真是把本人折腾得够呛啊, 其中涉及到sed中几个关键指令的意义:

    1) N 读取下一行数据到模式空间, 不挤掉之前模式空间的内容;

    2) P 打印模式空间中第一行内容;

    3) D 删除模式空间中第一行内容, 并对模式空间中的数据, 再来一遍sed命令

    4) sed每次处理完一行数据后(或者指令读到文件尾), 默认情况下都是要把模式空间中的内容输出, -n会不打印.

    好了,基于上面四点可以自己先分析下上面的指令了. enjoy.

  • 相关阅读:
    java I/O框架 (三)基本流
    java I/O框架 (二)文件操作(File)
    java I/O框架 (一)总览
    8.内部类
    7.权限
    6.继承
    5.代码块
    4.面向对象
    3控制语句
    PHP ksort() 函数
  • 原文地址:https://www.cnblogs.com/honpey/p/5709344.html
Copyright © 2011-2022 走看看