grep 凍結

grep 凍結

我在使用grep 時遇到問題,我在Win 10 上安裝了ubuntu 18.04。內容它。

$ mkdir test
$ cd test
$ ls
$ sudo grep "Werk!" > new
^C
$ ls
new
$ cat new

我錯過了一些明顯的東西嗎?

答案1

是的。您正在 grep'ing STDIN,因此它永遠掛起,等待永遠不會出現的輸入。

您可能想包括“。”作為 grep 和 -r (遞歸)的參數來 grep 目前目錄。

grep -r hello .

其他人也發現預設行為grep不太理想,因此您會發現一些grep替代方案不存在此問題。例如銀色搜尋者按名稱進行ag搜索,預設會遞歸搜尋當前目錄,因此您對正確語法的猜測是正確的ag

ag hello

ag也預設為不區分大小寫的搜索,除非您包含大寫字母,這也可以說是您想要的。它還預設使用顏色並使用更強大的 PCRE 正規表示式引擎(如 Perl),而不是grep預設使用的較弱、較舊的 glob 樣式匹配。

像這樣的可用性問題就是為什麼您應該在可以且僅在必要時grep使用更新的替代方案的原因。了解您可能共享的 shell 腳本的標準工具以及您將登入的任何 Linux 機器上的標準實用程式仍然很有用。grepgrep

「ripgrep」和「ack」是 grep 的另一個不錯的替代品。

答案2

您錯過了命令的第二個參數grep,該參數指定您正在其中搜尋模式的檔案。

請關注人1 grep獲得有關 的幫助grep

答案3

也許您想在文件“new”中記錄文本,這可以透過使用“echo texts > new”來完成。

相關內容