基本的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...