在两种模式之间划线

时间:2018-01-16 06:53:28

标签: bash shell unix

文件中的数据

SQL> DELETE * FROM ABC;
RAM
SQL> DELETE * FROM LMN;
RAJ

我想在 RAJ 和第一个模式之间以相反的顺序提取数据 SQL> 找到 需要输出:
SQL> DELETE * FROM LMN;
RAJ

1 个答案:

答案 0 :(得分:0)

tac file.txt|sed -n '/^RAJ/,/^SQL>/p'|tac
  1. tac: cat文件的顺序相反
  2. sed:仅打印RAJ和SQL>
  3. 之间的行

    示例file.txt

    SQL>DELETE *FROM ABC;
    RAM
    SQL>DELETE *FROM LMN;
    RAJ
    SQL>DELETE *FROM CDE;
    RAM
    SQL>DELETE *FROM XYZ;
    RAJ
    

    结果:

    SQL>DELETE *FROM LMN;
    RAJ
    SQL>DELETE *FROM XYZ;
    RAJ
    
相关问题