我在使用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 機器上的標準實用程式仍然很有用。grep
grep
「ripgrep」和「ack」是 grep 的另一個不錯的替代品。
答案2
您錯過了命令的第二個參數grep
,該參數指定您正在其中搜尋模式的檔案。
請關注人1 grep獲得有關 的幫助grep
。
答案3
也許您想在文件“new”中記錄文本,這可以透過使用“echo texts > new”來完成。