您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何理解Linux文件重定向和文件過濾器,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Linux系統對所有的東西都是以文件的方式來進行管理的,我們有必要對有關文件的操作進行一些了解。
文件過濾器
用來讀取文件內容和在文件內容上執行操作的命令有時被稱為過濾器。sed 和 awk 命令是兩個過濾器的例子,因為在以前的文章中有它們詳細的討論,在這里將略過。
諸如 cat、 more 和 less 之類的命令讓您能夠從命令行查看一個文本文件的內容,而無需調用編輯器。Cat 是 "concatenate" 的縮寫,它將默認地在標準輸出(顯示屏)上顯示文件內容。和 cat 一起提供的最有趣的選項之一是 -n 選項,它用編號的輸出行來顯示文件內容。
$ cat -n test.out
1 This is a test.
因為 cat 一次性輸出文件中的所有行,所以您可能更喜歡用 more 和 less,因為它們都一次輸出一屏的文件內容。Less 是 more 的一個增強的版本,它允許用來自 vi 文本編輯器的關鍵命令來增強文件查看。例如,d 向前翻滾、b 向后翻滾 N 行(如果 N 是在 d 或 b 之前指定的)。為 N 輸入的值成為隨后的 d 命令的默認值。man 頁面實用工具使用 less 來顯示使用說明的內容。
Linux文件重定向和管道
Linux文件重定向允許將命令輸出重定向到文件中,而不是標準輸出,或者類似地,也可重定向輸入。Linux文件重定向的標準符號 > 創建一個新的文件。>> 符號將輸出添加到一個現有的文件中:
$ more test2.out
Another test.
$ cat test.out >> test2.out
$ cat test2.out
Another test.
This is a test.
到文件的標準輸入可以用 < 符號來重定向:
$ cat < test2.out
錯誤消息用 2> 和 2>> 來重定向和添加,格式如下:
$ command 2> name_of_error_file
要避免無意地覆蓋一個現有的文件,使用 BASH 內置的命令集:
$ set -o noclobber
可以在命令和輸出文件之間用 >! 符號來重載這個特性。要關閉這個特性,用 +o 代替 -o。
Linux文件重定向在一個命令和文件之間、或文件和文件之間工作。Linux文件重定向語句的一項必須是一個文件。
管道使用 |符號,并且在命令之間工作。例如,您可以用以下方式將一個命令的輸出直接發送到打印機上:
$ ls -l * | lpr
可以用以下方式快速地找到歷史列表中的一個命令:
$ history | grep cat
更多的濾波器
Grep、fgrep 和 egrep 都顯示匹配一種模式的行。所有這三個命令都在文件中搜索指定的模式,如果您想不起來一個所需文件的名稱,這將非常有用。基本格式是:
grep [options] PATTERN [FILE...]
$ grep -r 'Subject' nsmail
CTRL-Z 將終止上述或其它任何命令。
grep 的最有用的選項可能是 -s。如果您以除根用戶之外的任何身份搜索系統文件,那么對于每一個您沒有訪問權限的文件,都將產生錯誤消息。這個命令禁止那些消息。
Fgrep(也以 grep -F 調用)只查找固定的字符串,而不是 grep 接收的正則表達式。而 egrep 接收包含更大范圍的特殊字符(如 “|”,它指示條件 OR 運算符)的模式。
$ egrep 'Subject|mailto' *
上述內容就是如何理解Linux文件重定向和文件過濾器,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。