Grep for String and open at the corresponding line

grep print line containing text
grep by line number
use grep to search for text in a file
grep in current directory and subdirectories
grep show line number
sed find line containing string
grep multiple strings
how to search a particular word in a file in linux

I'm having several occurrences of a specific string over several files in several lines obtained with grep.

$ grep -rn --include="*.cpp" mystring
lib/mlib/actionbuttonrule.cpp:300:  mystring Foobar...
lib/mlib/actionbuttonrule.cpp:314:  other mystring
lib/mlib/item.cpp:3025:             /* mystring**/
lib/mlib/item.cpp:3082:             mystring Foobar...
lib/mlib/item.cpp:3095:             Foo mystring bar

I'd like to open these files sequencially on the corresponding lines. I tried to do it with vim, but so far no success when it comes to open the line. Mustn't be vim or grep, but I'd assume there must be some kind of functionality out there...

You can load your grep output in Vim's quickfix list with:

$ vim -q <(grep -rn --include="*.cpp" mystring)

Go to the next occurence with :cn and to the previous occurrence with :cp.

See :help -q and :help quickfix.

Grep for String and open at the corresponding line, I'm having several occurrences of a specific string over several files in several lines obtained with grep . $ grep -rn --include="*.cpp" mystring lib  1. Search for the given string in a single file. The basic usage of grep command is to search for a specific string in the specified file as shown below. Syntax: grep "literal_string" filename. $ grep "this" demo_file this line is the 1st lower case line in this file. Two lines above this line is empty.

Here is another way to do

$ grep -rn --include="*.cpp" mystring > op
$ vim op

Then use gF and to come back to file op, use Ctrl + 6

How to find lines containing a string and then printing those specific , For Q1b, your grep output can include lines preceding and following matched lines Related to -C are -A (for After), and -B (for Before), which only give the  Grep for String and open at the corresponding line. but so far no success when it comes to open the line. Mustn't be vim or grep, Stack Overflow is a site for

A trick to use vim as a pager is to pass it a hyphen character. This causes it to read from STDIN instead of from file

grep -rn --include="*.cpp" mystring | vim -

How to use grep command in UNIX / Linux {With Examples}, Grep is a Linux / Unix command-line tool used to search for a string of directory but does not print the lines with the corresponding word:. grep command is used to search files. The basic syntax is: grep 'word' file grep 'word1 word2' file1 file2 grep [option] 'word1 word2' file1 file2. The -n or --line-number grep option. You can pass either -n or --line-number option to the grep command to prefix each line of output with the line number within its input file. The syntax is: grep

Grep Command in Linux (Find Text in Files), The most basic usage of the grep command is to search for a string (text) in a file. For example, to display all the lines containing the string bash  file one contains many words (single word per line) and file two contains many strings per line . Now I want to Grep every line from file2 which contains file1 word. Could any one help me out ? This is like extracting from file2 matches from file1 !! Very appreciated to the one who give solution here !

grep command in Unix/Linux, 8. Matching the lines that start with a string : The ^ regular expression pattern specifies the start of a line. This can be used in grep to match the  $ grep -n -- 'f.*\.c$' *g*.h /dev/null argmatch.h:1:/* definitions and prototypes for argmatch.c The only line that matches is line 1 of argmatch.h. Note that the regular expression syntax used in the pattern differs from the glob‐ bing syntax that the shell uses to match file names.

grep Pocket Reference: A Quick Pocket Reference for a Utility , By giving grep a string to search for, it will print out only lines that contain that string and can print the corresponding line numbers for that text. The “simple” use​  If your string contains multiple lines (if it contains newlines), each line will be considered a fixed string, and any of them can trigger a match. rgrep is the same as running grep -r. In this mode, grep will perform its search recursively. If it encounters a directory, it will traverse into that directory and continue searching.

Comments
  • Do you want to open for viewing the context? (grep has options to support that) Or do you want to open for editing interactively?
  • I need to edit it
  • Stack Overflow is a site for programming and development questions. This question appears to be off-topic because it is not about programming or development. See What topics can I ask about here in the Help Center. Perhaps Super User or Unix & Linux Stack Exchange would be a better place to ask.
  • Missing -l flag to grep
  • @GillesQuenot, fixed.
  • why is -l needed? it worked for me without -l and doesn't work with -l... am using gvim if that makes a difference
  • -l shouldn't be required IMHO as quick fix should understand default grep output format.
  • Guys, -l is not needed at all, change reverted. Only -r and -n are really needed. -n for the line numbers, -r for a side-effect.