Linux學習筆記_系統輸入輸出標準(重定向,>,>>,&1,xargs)

環境:centos7

需求:瞭解linux的輸入輸出標準,重定向使用方法,xargs含義


實踐:

linux中有三種標準輸入輸出,分別是STDIN,STDOUT,STDERR,對應的數字是0,1,2。

0:標準輸入,符號“<”

1:標準輸出,符號“1>”,簡寫成“>”

2:錯誤輸出,符號“2>”。


例:

ls /data

a b  // data路徑下有a,b兩個文件


cat a

test a


cat b

test b


-----------------------------------------------

cat a c >b 2>&1       // 將a文件和c文件(不存在)的內容重定向至b文件中(覆蓋方式)

                                // 2>&1表示錯誤信息輸出方式(路徑)與標準輸出方式(路徑)相同

cat b

test a
cat: c: No such file or directory      //錯誤信息也重定向至b文件中


-----------------------------------------------

 cat a c >>b 2>&1          //使用>>的輸出方式爲追加內容,不會覆蓋,2>&1寫法不變。


cat b

test b

test a

cat: c: No such file or directory

-----------------------------------------------


xargs


xargs命令是給其他命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。

xargs擅長將標準輸入數據轉換成命令行參數,xargs能夠處理管道或者stdin並將其轉換成特定命令的命令參數。

xargs也可以將單行或多行文本輸入轉換爲其他格式,例如多行變單行,單行變多行。

xargs的默認命令是echo,空格是默認定界符。

這意味着通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。

xargs是構建單行命令的重要組件之一。


例:

find  /data  -type  -f  -name  "*.txt"  |xargs  rm  -f    

//find命令的多行顯示結果輸出,經過xargs處理後變成單行輸入作爲rm命令的參數使用(推薦用此方法代替rm刪除命令


cat test.txt 

a b c d 

e f g h i j k 

l m n 

o p q r s t u v 

w x y z


cat test.txt | xargs 

a b c d e f g h i j k l m n o p q r s t u v w x y z


cat test.txt | xargs -n3 

a b c 

d e f 

g h i 

j k l 

m n o 

p q r 

s t u 

v w x 

y z


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章