9/11/2023 0 Comments R grep or condition![]() Note that if *.txt expands to a single file, grep won't prefix matching lines with its name like it does when there are more than one file. Or store those patterns in a file, one per line and run grep -f that-file - *.txt Or put patterns on several lines: grep - 'foo You can do this by preceding each pattern with the -e option. You need to pass the -E option to grep to select it (formerly that was done with the egrep separate command²) grep -E - 'foo|bar' *.txtĪnother possibility when you're just looking for any of several patterns (as opposed to building a complex pattern using disjunction) is to pass multiple patterns to grep. The portable way is to use the newer syntax, extended regular expressions. The old, default syntax ( basic regular expressions) doesn't support the alternation ( |) operator, though some versions have it as an extension, but written with a backslash. ![]() Second, grep supports at least¹ two syntaxes for patterns. If you do need a single quote, you can write it as '\'' (end string literal, literal quote, open string literal). (also note the - end-of-option-marker to stop some grep implementations including GNU grep from treating a file called -foo-.txt for instance (that would be expanded by the shell from *.txt) to be taken as an option (even though it follows a non-option argument here)). Single quotes prevent expansion of anything between them (including backslashes) the only thing you can't do then is have single quotes in the pattern. ![]() The easiest way to do that is to put single quotes around it. First, you need to protect the pattern from expansion by the shell. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |