shell學習第五天 基本的I O重定向

2021-07-03 04:22:44 字數 2566 閱讀 2846

基本的i/o

重定向

在了解重定向之前,

需要先了解一下標準的輸入輸出

,總的來說

,所有的資料都有**

,也都應該都重點

,預設的標準輸入輸出就是終端.

例如:

我們只是輸入  cat命令,

並不指定任何引數

,接著我們輸入

hello world,

就是列印

helloworld 

到終端.

所謂的i/o

重定向就是通過與終端互動

,或是在

shell

指令碼裡設定

,重新安排從**輸入或者輸出到**.

重定向與管道

使用<

改變標準輸入

program可將

program

的標準輸入修改為

file tr

使用》改變標準輸出

program>file 可將

program

的標準輸出修改為

file

>重定向符號在墓地檔案不存在的時候會新建乙個

,如果目的檔案存在

,目的檔案的內容會被覆蓋

,原本的資料會丟失.

以》附加到檔案

program>>file可以將

program

的標準輸出追加到

file

的結尾處.

如同》,open or create檔案,

但是》會追加到檔案的結尾而不是覆蓋原檔案內容.

以 | 

符號建立管道

program1 | program2可將

program

的標準輸出修改為

program2

的標準輸入

.這樣做的好處是執行速度較快

,不會產生臨時檔案

.一般情況下

,越複雜越強大的管道往往是高效的.

例如: tr -d 『\r』 dos-file.txt | sort >linux-file.txt

這條管道會先刪除輸入檔案內的回車符號,

在完成資料的排序之後

,將結果輸出到目的檔案.

r是translate

的簡寫,通過這個單詞,你大概也能猜到它是幹什麼的了吧!沒錯,它可以用乙個字串來替換另乙個字串,或者可以完全除去一些字元。您也可以用它來除去重複字元.

tr用來從標準輸入中通過替換或刪除操作進行字元轉換。

tr主要用於刪除檔案中控制字元或進行字元轉換。

tr [options] cource-char-file replace-char-list

例如:

(1)去除oops.txt

裡面的重複的小寫字元

tr -s "[a-z]"result.txt

(2)刪除空行

tr -s "[\012]" < plan.txt 或

tr -s ["\n"] < plan.txt (3

)有時需要刪除檔案中的

^m,並代之以換行

tr -s "[\015]" "[\n]" < file 或

tr -s "[\r]" "[\n]" < file (4

)大寫到小寫

cat a.txt |tr "[a-z]" "[a-z]" >b.txt

各個選項的意義的:

-c:取

source-char-list

的反義,tr

要轉換的字元程式設計位列在

source-char-list

中的字元

,通常與選項

-d.-s

配合使用.

-d:刪除標準輸入裡的字元

,不是轉換他們

-s:產出重複的字元

,如果標準輸入裡出現了重複多次的

source-char-list

裡所列的字元

,將其濃縮成乙個.

tr的行為模式

如同過濾器一般,

自標準輸入讀取字元

,再將結果寫到標準輸出

,任何輸入字元只要出現在

source-char-list中,

就會置換成

replace-char-list

裡相應的字元.

在使用linux

的工具程式是

,不妨將資料想想成誰管理的誰

,未經處理的水

,流向淨水廠

,經過各種過濾器的處理

,最後變成適合人類飲用的水

.可以把

<

和》想象成資料的漏斗

----

資料會從大的一頭進入

,從小的一頭出來.

在構造管道的時候,

應該試著讓每個階段的資料量變少

,也就是說

,吧會讓資料變少的命令放在前邊

,為後面的命令提供搞笑的執行效率.例如

,shiyongsort

排序之前,先用

grep

找出相關的行

,這樣可以讓

sort

少做些事

.

學習第五天

清楚測試用例是什麼 測試用例的重要性 有效性 測試用例是測試人員測試過程中的重要參考依據,準確的測試用例的計畫 執行和跟蹤是 測試的有效性的有力證明 可復用性 設計良好的測試用例可以重複執行,能節約時間,提高測試效率 易組織性 清晰詳細的測試用例能夠便於測試執行的開展 可評估性 測試用例的通過率是檢...

Java學習第五天

當類載入器需要載入某個類時,類載入器會在載入初始化後生成該類的乙個類物件 class 用於描述該類的元資料資訊等。在其後的連線過程中,會初始化該類的靜態成員 變數或靜態初始化器 靜態初始化變數和初始化器按照先後順序執行初始化。例如 static int a 10 static 這樣初始化後a 100...

C 學習第五天

c 中的is和as is可用於任何型別。例如 int a 10 a is object true object o 10 o is int true o person o is int false as右側型別必須為引用型別或可空型別。as操作如果失敗,不丟擲異常,而是返回null 結構 struc...