Linux

關於 Gnu/Linux 命令行界面的問題,使用 grep、ls 和 cat

  • March 25, 2020

問候堆棧交換,

我的目標:執行ls搜尋整個目錄結構並grep蒐索cats.py. 用於cat讀取文件cats.py。我知道這聽起來像是 Gnu/Linux inception。

我目前是 Stack Exchange 的新手,bash也不太熟悉 Stack Exchange,所以如果它的格式非常糟糕,請原諒我。

我執行以下ls -R -l -t -r | grep cats這將返回以下

rw-r--r-- 1 user user 2179 Mar 18 08:53 cats.py

我嘗試使用 cat 來讀取上面返回的文件,但是我遇到瞭如何為 grep 命令的結果分配佔位符的問題,這是我嘗試過的結果。

ls -R -l -t -r | grep cats | cat cats.py
cat: cats.py: No such file or directory

我認為問題在於我執行 cat 函式的方式應該如下所示:

ls -R -l -t -r | grep cats | cat '{}'

或者

ls -R -l -t -r | grep cats && cat cats.py

使用find命令。它可以找到該文件,並在其上執行命令。ls有問題,特別是如果-l給出了選項,那麼你有比你需要的更多的數據(文件模式,日期,所有者,…)。

即(替換«»中的位)

find «directory» -name '«file-name-glob-pattern»' -exec «command» {} \;

例如

find . -name 'cats.py' -exec cat {} \;

find 命令會更合適:

find . -name 'cats.py' -exec cat {} \;

引用自:https://unix.stackexchange.com/questions/574856