[英]searching string using grep
我正在使用 grep 搜索字符串,但 output 顯示不需要的文件以及正確的文件。
例如:- xyz_utils.c 包含 SAM22 關鍵字。
grep
命令:ret=$(grep -irwE "${excluded_files[@]/#/--exclude=}" "\\b${LIST[$A]}\\b|${LIST[$A]}[-_.*>@^:.,~%&\(\)\{}]|\\b${LIST[$A]}\\b" \
"$package/" |grep -v "$filters\|${excluded_dir[@]}" -c)
LIST[] -> 包含需要搜索的單詞列表。
/home/sampath/SAM20_1.0.0/LICENSE.BSD: from this software without specific prior written permission.
/home/sampath/SAM20_1.0.0/LICENSE.BSD: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
/home/sampath/SAM20_1.0.0/LICENSE.BSD: "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
/home/sampath/SAM20_1.0.0/LICENSE.BSD: LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
/home/sampath/SAM20_1.0.0/LICENSE.BSD: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
/home/sampath/SAM20_1.0.0/LICENSE.BSD: OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.
.
/home/sampath/SAM20_1.0.0/README.txt: Static libraries included in SAM software package:
/home/sampath/SAM20_1.0.0/README.txt: Warning: This option should never be enabled in a production environment
.
.
/home/sampath/SAM20_1.0.0/xyz_utils.c:SAM22
如果我想在一組文件中搜索一個字符串,比如SAM22
,我會這樣做:
find /<directory> -name "*.<extension>" -exec grep "SAM22" {} /dev/null \;
供您參考: /dev/null
是一個巧妙的技巧:如您所知, grep "entry" <filename>
結果顯示entry
(無文件名),而grep "entry" <filename1> <filename2>
顯示filename1:entry
,所以通過添加/dev/null
,我可以強制 output 也顯示文件名。
如果你說“我不需要包含SAM22
的整行,只需要條目本身,這可以使用-o
開關來處理:
find /<directory> -name "*.<extension>" -exec grep -o "SAM22" {} /dev/null \;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.