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

鍍金池/ 教程/ Linux/ shell 學習第五天----基本的 I/O 重定向
shell 學習四十一天----列出文件 ls 和 od 命令
shell 學習小結(jié)
shell 學習第二十八天----case 語句
shell 學習四十四天----尋找文件
shell 學習三十五天----波浪號展開與通配符
shell 學習三十八天----執(zhí)行順序和 eval
shell 學習四十八天----文件校驗和匹配
shell 學習四十天----awk 的驚人表現(xiàn)
shell 學習第十一天----sed 正則的精確控制
shell 學習第十七天----awk 命令
shell 學習三十九天----內(nèi)建命令
shell 學習四十五天----xargs
shell 學習三十七天----引用
shell 學習第十六天----join 練習
shell 學習第二十四天----提取開頭或結(jié)尾數(shù)行
shell 學習第九天----分組
shell 學習第五天----基本的 I/O 重定向
shell 學習第十五天----使用 cut 選定字段
shell 學習四十六天----文件系統(tǒng)的空間信息 df 和 du 命令
shell 學習第八天----擴展正則表達式 (ERE)
shell 學習第十九天----文本塊排序
shell 學習第二十一天----重新格式化段落
shell 學習三十六天----命令替換
shell 學習第二十天----sort 的其他內(nèi)容以及 uniq 命令
shell 學習四十二天----使用 touch 更新文件時間
shell 學習五十一天----top 命令查看進程列表
shell 學習第一天
shell 學習五十四天----進程系統(tǒng)調(diào)用的追蹤 strace
shell 學習五十天----查看進程 ps 命令
shell 學習第二十七天----退出狀態(tài)和 if 語句
shell 學習第二十三天----打印
shell 學習三十三天----關于重定向
shell 學習四十九天----進程建立
shell 學習第三十天----break,continue,shift,getopts
shell 學習五十五天----進程記賬
shell 學習總結(jié)一
shell 學習第二十六天----變量與算數(shù)
shell 學習第二十二天----計算行數(shù), 字數(shù)以及字符數(shù)
shell 學習五十八天----/proc 文件系統(tǒng)
shell 學習第二十五天----神器的管道符
shell 學習第三十二天----read 讀取一行
sheel 學習第三天
shell 學習----小結(jié)
shell 學習第十八天----文本排序
shell 學習第三十一天----函數(shù)問題
shell 學習第十天----sed 查找與替換
shell 學習四十三天----臨時性文件的建立與使用
shell 學習四十七天----文件比較 cmp,diff,patch
shell 學習三十四天----printf 詳解
shell 學習五十七天 ----linux 任務管理,針對上一講的總結(jié)和擴展
shell 學習第六天----小結(jié)
shell 學習第十三天----sed 案例分析
shell 學習第七天----基礎正則表達式 (BRE)
shell 學習第十二天----行與字符串
shell 學習小結(jié)四
shell 學習第二十九天----循環(huán)
shell 學習五十二天----刪除進程 kill 命令
shell 學習五十六天----延遲進程調(diào)度
shell 學習第四天----華麗的 printf 輸出
shell 學習第十五天----join 連接字段
shell 學習完結(jié)篇----希望你能看到
shell 學習第二天
shell 學習五十三天----捕獲信號 trap

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

基本的 I/O 重定向

在了解重定向之前,需要先了解一下標準的輸入輸出,總的來說,所有的數(shù)據(jù)都有來源,也都應該都重點,默認的標準輸入輸出就是終端。

例如:

我們只是輸入 cat 命令,并不指定任何參數(shù),接著我們輸入 hello world,就是打印 helloworld 到終端。
所謂的 I/O 重定向就是通過與終端交互,或是在 shell 腳本里設置,重新安排從哪里輸入或者輸出到哪里。

重定向與管道

使用 < 改變標準輸入

program<file 可將 program 的標準輸入修改為 file

tr

使用 > 改變標準輸出

program>file 可將 program 的標準輸出修改為 file

> 重定向符號在墓地文件不存在的時候會新建一個,如果目的文件存在,目的文件的內(nèi)容會被覆蓋,原本的數(shù)據(jù)會丟失。

>> 附加到文件

program>>file 可以將 program 的標準輸出追加到 file 的結(jié)尾處。

如同 >,open or create 文件,但是 >> 會追加到文件的結(jié)尾而不是覆蓋原文件內(nèi)容。

以 | 符號建立管道

program1 | program2 可將 program 的標準輸出修改為 program2 的標準輸入。這樣做的好處是執(zhí)行速度較快,不會產(chǎn)生臨時文件。一般情況下,越復雜越強大的管道往往是高效的。

例如:tr -d ‘\r’ dos-file.txt | sort >Linux-file.txt 這條管道會先刪除輸入文件內(nèi)的回車符號,在完成數(shù)據(jù)的排序之后,將結(jié)果輸出到目的文件。

r 是 translate 的簡寫,通過這個單詞,你大概也能猜到它是干什么的了吧!沒錯,它可以用一個字符串來替換另一個字符串,或者可以完全除去一些字符。您也可以用它來除去重復字符。tr 用來從標準輸入中通過替換或刪除操作進行字符轉(zhuǎn)換。tr 主要用于刪除文件中控制字符或進行字符轉(zhuǎn)換。

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

例如:

  1. 去除 oops.txt 里面的重復的小寫字符 tr -s "[a-z]"<oops.txt>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 要轉(zhuǎn)換的字符編程位列在 source-char-list 中的字符,通常與選項 -d.-s 配合使用。
  • -d: 刪除標準輸入里的字符,不是轉(zhuǎn)換他們
  • -s: 產(chǎn)出重復的字符,如果標準輸入里出現(xiàn)了重復多次的 source-char-list 里所列的字符,將其濃縮成一個。

tr 的行為模式

如同過濾器一般,自標準輸入讀取字符,再將結(jié)果寫到標準輸出,任何輸入字符只要出現(xiàn)在 source-char-list 中,就會置換成 replace-char-list 里相應的字符。

在使用 linux 的工具程序是,不妨將數(shù)據(jù)想想成誰管理的誰,未經(jīng)處理的水,流向凈水廠,經(jīng)過各種過濾器的處理,最后變成適合人類飲用的水??梢园?< 和 > 想象成數(shù)據(jù)的漏斗---- 數(shù)據(jù)會從大的一頭進入,從小的一頭出來。

在構造管道的時候,應該試著讓每個階段的數(shù)據(jù)量變少,也就是說,吧會讓數(shù)據(jù)變少的命令放在前邊,為后面的命令提供搞笑的執(zhí)行效率。例如,shiyongsort 排序之前,先用 grep 找出相關的行,這樣可以讓 sort 少做些事。