久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何理解Linux文件重定向和文件過濾器

143次閱讀
沒有評論

共計 1443 個字符,預計需要花費 4 分鐘才能閱讀完成。

本篇文章為大家展示了如何理解 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 都顯示匹配一種模式的行。所有這三個命令都在文件中搜索指定的模式,如果您想不起來一個所需文件的名稱,這將非常有用?;靖袷绞牵?/p>

grep [options] PATTERN [FILE…]

$ grep -r Subject nsmail

CTRL-Z 將終止上述或其它任何命令。

grep 的最有用的選項可能是 -s。如果您以除根用戶之外的任何身份搜索系統文件,那么對于每一個您沒有訪問權限的文件,都將產生錯誤消息。這個命令禁止那些消息。

Fgrep(也以 grep -F 調用)只查找固定的字符串,而不是 grep 接收的正則表達式。而 egrep 接收包含更大范圍的特殊字符(如“|”,它指示條件 OR 運算符)的模式。

$ egrep Subject|mailto *

上述內容就是如何理解 Linux 文件重定向和文件過濾器,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1443字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 边坝县| 漳平市| 华安县| 潢川县| 荔浦县| 福泉市| 镇雄县| 平远县| 黄冈市| 菏泽市| 伊春市| 韩城市| 巴塘县| 明溪县| 石嘴山市| 汝南县| 隆回县| 蓬安县| 木兰县| 郸城县| 乡城县| 武定县| 保定市| 常熟市| 丹寨县| 米易县| 自贡市| 巴楚县| 长海县| 满洲里市| 光山县| 龙山县| 许昌市| 大悟县| 涿州市| 漯河市| 东台市| 盐边县| 清苑县| 福州市| 枣强县|