1. 程式人生 > >Linux命令備忘例項(7)——雙向重定向與字元操作

Linux命令備忘例項(7)——雙向重定向與字元操作

1.tee(雙向重定向)

管道符或者“>”操作符都是單向的資料流,為了在資料流處理的國中將某段資訊儲存到檔案,同時希望這個資料流繼續輸出到後續的命令,那麼tee就是為了完成這樣的工作情景。
這裡寫圖片描述
tee相當於一個分流器,將資料流分送到檔案和stdout。
這個命令的選項也很簡單,-a是用來指定以追加的方式寫入到檔案,-i選項用來指定寫入檔案時忽略外部中斷的訊號。

[email protected]:~$ echo "test" | tee -a test.bak | tr -d 't'
es

上述命令會生成一個test.bak的檔案保留了“test”內容。如果指定的檔名是“-”,那麼也會拷貝內容到stdout,從而輸出兩份內容。

2.tr

tr是一個非常有效和簡潔的替換工具,同時支援POSIX中的字符集。
這裡寫圖片描述
常用的除了指定替換字串外,-c選項可以從反面來指定,替換補集。另外-d選項用來直接刪除指定的字元,-s選項用來壓縮連續字串為一個。-t選項則用來將SET1的長度匹配到SET2的長度。
比較重要的是支援的字符集和轉義字元:
這裡寫圖片描述
前面很多地方使用了這個命令。它只能從標準輸入接收資料,不能從引數接收輸入。

user@ubuntu:~$ echo "test" | tr -d 't'
es
user@ubuntu:~$ echo "test" | tr 'a-z' 'A-Z'
TEST
user@ubuntu
:~$ echo "test" | tr -c 't' '#' t##t user@ubuntu:~$ echo "aaaaaaaaaabbbbbbbbbb" | tr -s 'ab' ab user@ubuntu:~$ echo "test" | tr [:lower:] [:upper:] TEST

3.join

join命令將兩個檔案進行合併,輸出到stdout。
這裡寫圖片描述

[email protected]:~$ join -t ':' /etc/passwd /etc/shadow
root:x:0:0root:/root:/bin/bash:$1/xxxxxxxxxxxxxx::::::
...

可以使用-1和-2選項指定兩個檔案進行合併時的欄位位置。

[email protected]:~$ join -t ':' -1 4 /etc/passwd -2 3 /etc/group
0:root:x:0:0root:/root:/bin/bash:root:x:root
...

4.paste

直接將兩個檔案的每一行貼上起來,中間預設以tab鍵分割。
選項-d指定連線行的分割字元。預設為tab鍵。-s指定按照順序進行貼上,預設為並行操作。如果輸入的檔案為“-”,那麼會從stdin讀取。

user@ubuntu:~$ paste /etc/passwd /etc/shadow
bin:x:0:0:bin:/bin:/bin/bash    bin:*:14121:0:999999:7:::
...

5.expand、unexpand

這個命令的功能很簡單,就是將tab鍵轉換為空格,可以指定一個tab鍵由多少個空格替代。
這裡寫圖片描述
-t可以指定一個tab鍵替換的空格個數,也可以使用逗號分隔的列表指定位置。-i能夠將費空格字元後的tab不進行替換。

user@ubuntu:~$ echo "test test"| expand -t 2
test  test
user@ubuntu:~$ echo "test test"| expand -t 4
test    test
user@ubuntu:~$ echo "test test"| expand -t 4 -i
test(tab)test

unexpand與expand正好相反,將空格替換為tab鍵。
這裡寫圖片描述

相關推薦

Linux命令例項7——雙向定向字元操作

1.tee(雙向重定向) 管道符或者“>”操作符都是單向的資料流,為了在資料流處理的國中將某段資訊儲存到檔案,同時希望這個資料流繼續輸出到後續的命令,那麼tee就是為了完成這樣的工作情景。 tee相當於一個分流器,將資料流分送到檔案和stdout。

Linux命令例項1——終端輸出

終端是使用者與shell環境進行互動的視窗,所有命令的互動結果大部分都是從終端直接顯示給使用者,因此這部分是友好顯示結果的基礎。 1.命令概覽 echo是基本的終端輸出命令,直接將傳入的引數輸入,命令格式如下: echo [options] toBeOut

Linux命令例項14——sed

sed是UNIX下非常重要的文字處理工具,是stream editor(流編輯器)的縮寫。這個命令配合正則表示式能夠處理非常強大的文字操作功能。其中眾所周知的用法就是文字替換。 1.概覽 sed [option] 'script'/scriptfile

linux筆記-bash

1.linux中變數的宣告 name=myname 如果值中有特殊字元,需要用引號包起來,或者前面加一個轉義符轉義符。如name=my‘name  是錯誤的 變數的銷燬 unset name 若該變數需要在其他子程式執行,則需要以 export 來使變數變成環境變數 2.用

實用收藏Linux命令

屏幕 ssh 狀態 標準輸出 系統 play mkdir ger rdquo 系統操作 #使用shutdown命令馬上重啟系統[[email protected]/* */ ~]# shutdown –r now #使用shutdown命令馬上

Linux命令工具 apt-get1

purge tor show 命令工具 但是 nag deb 模式 其中 Advanced Package Tool,又名apt-get,是一款適用於Unix和Linux系統的應用程序管理器。最初於1998年發布,用於檢索應用程序並將其加載到Debian Linux系統。A

MySQL

update 虛擬 主鍵 ble str 內聯 完全 語句 innodb 聯結表   創建聯結  FROM 表1,表2    與內連接作用相同類似;如果失去WHERE子句,會出現笛卡爾積現象   內聯結   INNER JOIN     高級聯結   自聯結   例子:

Linux驅動程序驅動程序簡介

包括 收集 字符設備 調度器 計算機 啟動 驅動程序 str 單個 機制or策略: 驅動提供機制(what),而不是提供策略(how); 內核功能劃分: 根據內核完成任務的不同,可分為如下幾個部分: 1. 進程管理 負責進程的的創建和銷毀,並

Linux第二周學習筆記7

詳解 顯示 one per mes ctr 方向鍵 post sage Linux第二周學習筆記(7)2.13 文檔查看cat_more_less_head_tail(1). cat命令cat命令:用於查看一個文件的內容並將其顯示在屏幕上cat-A命令:顯示所有的內容,包括

Linux學習並不難》Linux字符界面4Linux系統之reboot命令

Linux 重啟 3.4 《Linux學習並不難》Linux字符界面(4):重啟Linux系統之reboot命令reboot的工作過程與halt相似,不過reboot是引發計算機重啟﹐而halt是引發計算機關閉。它的選項與halt相似。命令語法:reboot [選項] 命令中各選項的含義如

linux命令詳解之at

關閉 服務啟動 安全問題 分隔 sta 設定 tmp 指示 命令的使用 在Linux下,有兩個命令可以用來作為計劃任務而執行,at:一次性定時任務計劃執行crontab :每天定時任務計劃執行以下僅說一下一次性任務計劃執行(at)要使用一次性任務計劃,linux必須要有負責

Linux基礎命令定向、展開引用——cat、sort、uniq、grep、wc、head、tail、tee

I/O重定向 通過這個工具,可以重定向命令的輸入輸出,命令的輸入來自檔案,而輸出也存到檔案。 也可以把多個命令連線起來組成一個強大的命令管道。 cat — 連線檔案 sort — 排序文字行 uniq — 報道或省略重複行 grep — 列印匹配行 wc — 列印

python學習例項7

#========================================================= #第8章 資訊保安(Information Security)的python程式 #=====================================

Linux 命令篇 之 Find2

正則表示式—regular expression 正則表示式,又稱正規表示法、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。在很

Linux 命令篇 之 wget1

wget是一個從網路上自動下載檔案的自由工具,支援通過HTTP、HTTPS、FTP三個最常見的TCP/IP協議下載,並可以使用HTTP代理。wget名稱的由來是"World Wide Web"與"get"的結合。 我們嘗試來下載一個網路圖片吧! 很簡單的一條命令,就w

Linux 命令篇 之 wget2

我們接著上面的繼續來學 Wget –r ftp://a.server:/home/www/a a.server:/home/www/a/ 這樣下載你會發現啊,預設建立一個域名和絕對路徑 但是你不想要 wget –r –nH ftp://a.server://hom

常用 Linux 命令的基本使用

1常用 Linux 命令的基本使用 1.1小技巧 ctrl + shift + = 放大終端視窗的字型顯示 ctrl + - 縮小終端視窗的字型顯示 在敲出 檔案/目錄/命令 的前幾個字母之後,按下 tab 鍵 如果輸入的沒有歧義,系統會自動補全 如果還存在其他 檔案/目錄/命令,再按

Linux網路程式設計學習筆記7---5種I/O模型及select輪詢

本文主要介紹5種I/O模型,select函式以及利用select實現C/S模型。 1、5種I/O模型 (1)阻塞I/O: 一直等到資料到來,才會將資料從核心中拷貝到使用者空間中。 (2)非阻塞I/O: 每過一段時

Linux裝置驅動程式學習7-核心的資料型別

由於前面的學習中有用到 第十一章 核心資料結構型別 的知識,所以我先看了。要點如下: 將linux 移植到新的體系結構時,開發者遇到的若干問題都與不正確的資料型別有關。堅持使用嚴格的資料型別和使用 -Wall -Wstrict-prototypes 進行編譯可能避免大部分

linux命令

檢視那個程序佔用了xxx埠 lsof -i:xxx 檢視程序號為xxx的程序在哪裡 ps -ef|grep xxx ========================= 常規篇:  首先,用ps檢視程序,方法如下:$ ps -ef…… smx       1822