Grep භාවිතා කරමින් සෘණ ගැලපීම (foo අඩංගු නොවන ගැලපුම් රේඛා)


1011

මම මෙම විධානය සඳහා සින්ටැක්ස් සකස් කිරීමට උත්සාහ කරමි:

grep ! error_log | find /home/foo/public_html/ -mmin -60

හෝ:

grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60

නම් කර ඇති ඒවා හැර වෙනස් කර ඇති සියලුම ලිපිගොනු මට දැකීමට අවශ්‍යය error_log.

මම ඒ ගැන මෙහි කියවා ඇත්තෙමි , නමුත් හමු වූයේ එක් not-රෙජෙක්ස් රටාවක් පමණි.


Answers:


1803

grep -v ඔබේ මිතුරා:

grep --help | grep invert  

-v, --invert-match නොගැලපෙන රේඛා තෝරන්න

අදාළ -L(අනුපූරක -l) ද බලන්න.

-L, --files- ගැලපීමකින් තොරව FILE නම් පමණක් නොගැලපේ


134
බහුවිධ (negative -egrep -v -e 'negphrase1' -e 'negphrase2'

34
@ බබ්කන්-වර්ඩනියන්ගේ අදහස් දැක්වීමට සමානයgrep -v 'negphrase1|negphrase2|negphrase3'
නිකලස් ඇඩම්ස්

14
අන්තිම අදහස් දැක්වීම සමාන නොවන අතර එය දෙකටම නොගැලපෙන දේවල් සොයනු ඇත. එනම් එය එකකට ගැලපෙන නමුත් අනෙක නොගැලපේ නම් එය තවමත් මුද්‍රණය කර ඇත. සමාන නොවන නූල් සමඟ එය දෙයාකාරයෙන්ම උත්සාහ කරන්න
ඉවාන් ලැන්ග්ලොයිස්

8
An ඉවාන් ලැන්ග්ලොයිස් - -Eකෘති භාවිතා කරමින් රටාව දීර් extended නිත්‍ය ප්‍රකාශනයක් ලෙස අර්ථ නිරූපණය කිරීමට බල කිරීම , එනම් grep -vE 'negphrase1|negphrase2|negphrase3'
ස්ලෙමිනි

1
Le ඔලෙහාර්ස්ටෙඩ්, මගේ පෙර අදහස් දැක්වීමේදී ඔබගේ තත්වය මම වරදවා වටහාගෙන ඇති බව මම සිතමි, පහත දැක්වෙන්නේ ඔබ සොයන දෙය විය හැකිය grep "" /dev/null * | grep foo | grep -v bar | cut -d: -f1 | sort -u( ඇයි පළමු ග්‍රහණය?, සෑම විටම ක්‍රමයක් තිබේ :))
මෝටි

140

ඔබට ද භාවිතා කළ හැකිය awk වඩාත් සංකීර්ණ චෙක්පත් වඩාත් පැහැදිලි ආකාරයකින් සිදු කිරීමට ඉඩ සලසන බැවින් ඔබට මෙම අරමුණු සඳහා :

අඩංගු නොවන රේඛා foo:

awk '!/foo/'

fooහෝ අඩංගු නොවන රේඛා bar:

awk '!/foo/ && !/bar/'

රැහැන් සහිත හෝ fooහෝ barකරන හෝ අඩංගු foo2හෝ bar2:

awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'

සහ යනාදි.


2
එය ඇත්තෙන්ම සිසිල් ය. තාර්කික ක්‍රියාකරුවන් සමඟ රීජෙක්ස් කණ්ඩායම් කිරීම සඳහා ඔබට සම්පූර්ණ අමුතු භාෂාව ඉගෙන ගැනීමට අවශ්‍ය නැත. මෙම පිළිතුරට ස්තූතියි!
පීටර් ටී.

14

ඔබගේ නඩුවේදී, ඔබට අනුමාන වශයෙන් grep භාවිතා කිරීමට අවශ්‍ය නැත, නමුත් ඒ වෙනුවට find විධානයට නිෂේධාත්මක වගන්තියක් එක් කරන්න, උදා.

find /home/baumerf/public_html/ -mmin -60 -not -name error_log

ඔබට ආදේශක කාඩ්පත් නමට ඇතුළත් කිරීමට අවශ්‍ය නම්, ඔබට ඒවායින් ගැලවීමට සිදුවේ, උදා. උපසර්ගය සහිත ලිපිගොනු බැහැර කිරීම .log:

find /home/baumerf/public_html/ -mmin -60 -not -name \*.log
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.