簡體   English   中英

Ubuntu 14.04中的Grep

[英]Grep in Ubuntu 14.04

我最近將Ubuntu VM更新到14.04,在此之前我可以運行grep命令

grep -nr "piece of text"

或其他任何grep命令,它將在2-10秒內在我正在處理的目錄中完成。 現在由於某種原因(不知道這是否是由更新引起的),在我正在使用的同一個目錄中運行任何grep命令似乎都掛在那里(idk如果完成了,因為我不想等待一分鍾或以便進行搜索)而不是顯示我的結果。 對正在發生的事情或我能做些什么並嘗試解決它有任何想法嗎?

您沒有指定要grep的文件,因此它正在嘗試讀取STDIN。 我想你想要

grep -nr "piece of text" *

請注意,星號會被globe到當前路徑中的所有文件。

您正在使用哪個grep -r選項默認為“。” gnu情況下的目錄

which grep :
/bin/grep --version
/bin/grep (GNU grep) 2.18)
...
this is gnu grep :

echo "truc" >/tmp/truc

cd /tmp; grep -nr "truc";

使用gnu grep->遞歸搜索。 當前目錄(在/tmp )的目錄,並顯示包含“ truc”的目錄

如果/bin/grep --version是busybox:

BusyBox v1.22.1 (Debian 1:1.22.0-8) multi-call binary.

用法:

grep [-HhnlLoqvsriwFEz] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...

使用busybox: cd /tmp; busybox grep -nr "truc"; cd /tmp; busybox grep -nr "truc";

無限期地等待您在STDIN上鍵入文件的內容(以Ctrl + C停止)。

它將STDIN讀取為文件(甚至不關心-n表示目錄遞歸)。

正如其他人回答的那樣,正如POSIX grepGNU grep文檔所講的那樣,您需要為標准grep命令指定一些文件。 (但GNU grep默認為當前目錄.如果-r是一個沒有目錄名定;但如果-r完全不給, grep默認閱讀-標准輸入 )。

順便說一句,我還建議使用ack實用程序,在Ubuntu或Debian上打包為ack-grep軟件包 它不需要任何文件(默認是當前目錄下的源代碼文件),並且避免了無用的非源文件(版本控制或目標文件...):

 ack "piece of text"

另外,在emacs下,您可以使用Mx grep

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM