使用GREP命令后仅打印上一行

时间:2015-12-16 06:49:13

标签: linux grep

我想在某个文件中搜索特定字符串。一旦找到,我只想打印greped行的前一行,而不是使用grep命令获得的行。

cmd:grep -B 1 line5

Ex:
lin1 with some text
lin2
lin3
lin4
lin5 with some text

输出

lin4
lin5 with some text

但是有什么解决方案我只能获得lin4但不能获得lin5。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

  1. 匹配后显示N行 -A是在匹配后打印指定的N行的选项,如下所示 语法:

    grep -A <N> "string" FILENAME
    
  2. 在比赛前显示N行 -B是选项,在匹配前打印指定的N行 语法:

    grep -B <N> "string” FILENAME
    
  3. 在匹配项周围显示N行 -C是选项,它在匹配前打印指定的N行。在某些情况下,您可能希望匹配与两侧的线条一起出现。此选项在匹配的一侧(前后)显示N行。

    $ grep -C 2 "Example"  FILENAME
    

答案 1 :(得分:-1)

这样做:

 public void onListItemClick(ListView l, View view, int position, long id){
    final Dialog dialog = new Dialog(this.getActivity());
    dialog.setTitle("Dicoba dialog");
    dialog.setContentView(R.layout.my_dialog);
    dialog.show();

    Button btnYes = (Button) getActivity().findViewById(R.id.yes);
    Button btnNo = (Button) getActivity().findViewById(R.id.no);

    btnYes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getActivity(), "Yes!!", Toast.LENGTH_LONG).show();
            dialog.cancel();
        }
    });

    btnNo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.cancel();
        }
    });
}

获取输出的第一行