在下面的例子中^ [ - 是转义字符来染色终端输出(只需键入ctrl + v + [)。摆脱文件中不需要的行
1)我的文件:
-------- just to mark start of file ----------
^[[1;31mbla bla bla^[[0m
^[[0;36mTREE;01;^[[0m
^[[1;31m^[[0m
^[[1;31m^[[1;31mapple tree:^[[0m^[[0m
^[[1;31m4 apples^M^M^[[0m
^[[1;31m6 leafs^M^[[0m
^[[0;36mTREE;02;^[[0m
^[[0;36mTREE;03;^[[0m
withered
^[[0;36mTREE;04;^[[0m
^[[0;36mTREE;05;^[[0m
^[[0;36mTREE;06;^[[0m
^[[0;36mTREE;07;^[[0m
^[[1;31m^[[0m
^[[1;31m^[[1;31mcherry tree:^[[0m^[[0m
^[[1;31mbig branches^M^M^[[0m
^[[1;31mtchick roots^M^[[0m
^[[0;36mTREE;08;^[[0m
^[[0;36mMy tree ^[[0m I have tree house on it^[[0;31m:-)^[[0m
^[[0;36mTREE;09;^[[0m
-------- just to mark end of file ----------
2)我想摆脱所有的“空标签” - 这是有其下没有意见的所有标签。
所以结果我想实现的是:
-------- just to mark start of results ----------
^[[1;31mbla bla bla^[[0m
^[[0;36mTREE;01;^[[0m
^[[1;31m^[[0m
^[[1;31m^[[1;31mapple tree:^[[0m^[[0m
^[[1;31m4 apples^M^M^[[0m
^[[1;31m6 leafs^M^[[0m
^[[0;36mTREE;03;^[[0m
withered
^[[0;36mTREE;07;^[[0m
^[[1;31m^[[0m
^[[1;31m^[[1;31mcherry tree:^[[0m^[[0m
^[[1;31mbig branches^M^M^[[0m
^[[1;31mtchick roots^M^[[0m
^[[0;36mTREE;08;^[[0m
^[[0;36mMy tree ^[[0m I have tree house on it^[[0;31m:-)^[[0m
-------- just to mark end of results ----------
3)我做的:
pcregrep -M 'TREE.*\n(\n|\s)+(?=.*TREE|\z)' my_file
和它的作品,因为我期待的 - 它的叶子只有标签没有评论
-------- just to mark start of results ----------
^[[0;36mTREE;02;^[[0m
^[[0;36mTREE;04;^[[0m
^[[0;36mTREE;05;^[[0m
^[[0;36mTREE;06;^[[0m
^[[0;36mTREE;09;^[[0m
-------- just to mark end of results ----------
4)但命令:
pcregrep -Mv 'TREE.*\n(\n|\s)+(?=.*TREE|\z)' my_file
产品“有线结果”我不明白。
*)如何获得我想要的结果?
有了这样的任何工具:pcregrep,AG,ACK,用sed,awk中,...
我也不认为你需要标记结果的开始和结束,并将它们标记为足够的代码。 – stee1rat