在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ UNIX 管道和過濾器
UNIX 文件權(quán)限/訪問模式
UNIX 系統(tǒng)性能
UNIX 管道和過濾器
UNIX 進(jìn)程管理
Shell 內(nèi)置數(shù)學(xué)函數(shù)
UNIX 環(huán)境
UNIX 文件管理
Unix
UNIX 網(wǎng)絡(luò)實用工具
UNIX 系統(tǒng)日志
UNIX 目錄管理
vi編輯器教程
Unix 基本工具(打印,電子郵件)
UNIX 用戶管理
UNIX 信號和陷阱
Unix 正則表達(dá)式SED
Unix 文件系統(tǒng)基礎(chǔ)
Unix是什么?
Unix 有用命令

UNIX 管道和過濾器

您可以連接在一起,使兩個命令從一個程序的輸出成為下一個程序的輸入。以這種方式連接的兩個或多個命令可以形成一個管。

要制作一個管道,放了兩個命令在命令行之間的豎線(|)。

當(dāng)一個程序?qū)⑵鋸牧硪粋€程序的輸入,該輸入執(zhí)行某些操作,并寫入到標(biāo)準(zhǔn)輸出的結(jié)果,它被稱為作為一個過濾器。

grep命令:

grep程序搜索一個或多個文件的??行有一定的模式。語法是:

$grep pattern file(s)

這個名字源于“grep”的ED(UNIX行編輯器)命令g/re/p指“全局搜索所有包含一個正則表達(dá)式和打印。”  

正則表達(dá)式是一些純文本(一個字,例如)和/或特殊字符用于模式匹配。

grep最簡單的用法是看一個字組成的一個模式。它可以用在管道中,因而只有那些行包含一個給定的字符串的輸入文件被發(fā)送到標(biāo)準(zhǔn)輸出。如果你不給grep的讀取一個文件名時,它讀取標(biāo)準(zhǔn)輸入的所有過濾方案的工作方式:

$ls -l | grep "Aug"
-rw-rw-rw-   1 john  doc     11008 Aug  6 14:10 ch02
-rw-rw-rw-   1 john  doc      8515 Aug  6 15:30 ch07
-rw-rw-r--   1 john  doc      2488 Aug 15 10:51 intro
-rw-rw-r--   1 carol doc      1605 Aug 23 07:35 macros
$

有各種不同的選項,可以一起使用grep命令:

Option 描述
-v Print all lines that do not match pattern.
-n Print the matched line and its line number.
-l Print only the names of files with matching lines (letter "l")
-c Print only the count of matching lines.
-i Match either upper- or lowercase.

接下來,讓我們使用一個正則表達(dá)式,告訴grep來查找線“carol”,由零個或多個其他字符在正則表達(dá)式簡稱為“*”),再其次是“Aug”。

在這里,我們使用-i選項來區(qū)分大小寫的搜索:

$ls -l | grep -i "carol.*aug"
-rw-rw-r--   1 carol doc      1605 Aug 23 07:35 macros
$

sort命令:

sort命令安排行的文字,字母或數(shù)字。下面的例子各種行在food文件:

$sort food
Afghani Cuisine
Bangkok Wok
Big Apple Deli
Isle of Java
Mandalay
Sushi and Sashimi
Sweet Tooth
Tio Pepe's Peppers
$

sort命令默認(rèn)情況下,按字母順序排列的文本行。有很多的選擇,控制排序:

Option 描述
-n Sort numerically (example: 10 will sort after 2), ignore blanks and tabs.
-r Reverse the order of sort.
-f Sort upper- and lowercase together.
+x Ignore first x fields when sorting.

超過兩個命令可以鏈接到一個管道。以先前的管道使用grep的例子,我們可以進(jìn)一步在August 修改的文件大小順序進(jìn)行排序。 

下面的管道由命令ls,grep和排序:

$ls -l | grep "Aug" | sort +4n
-rw-rw-r--  1 carol doc      1605 Aug 23 07:35 macros
-rw-rw-r--  1 john  doc      2488 Aug 15 10:51 intro
-rw-rw-rw-  1 john  doc      8515 Aug  6 15:30 ch07
-rw-rw-rw-  1 john  doc     11008 Aug  6 14:10 ch02
$

August 大小順序修改這條管道在你的目錄中的所有文件進(jìn)行排序,并將它們打印到終端屏幕。行數(shù)字順序排序選項+4Ñ跳過四個字段(字段由空格分隔),然后排序。

pg 和更多的命令:

一個長的輸出通常會壓縮在屏幕上,但如果你運(yùn)行文本通過或pg作為一個過濾器,每屏顯示的文本后,顯示停止。

讓我們假設(shè)你有一個長的目錄列表。為了使其更易于閱讀排序列表,通過管道輸出如下:

$ls -l | grep "Aug" | sort +4n | more
-rw-rw-r--  1 carol doc      1605 Aug 23 07:35 macros
-rw-rw-r--  1 john  doc      2488 Aug 15 10:51 intro
-rw-rw-rw-  1 john  doc      8515 Aug  6 15:30 ch07
下一篇:Unix 文件系統(tǒng)基礎(chǔ)