1. 程式人生 > >shell訓練營Day3

shell訓練營Day3

Day 3

1.命令split切割,shell特殊符號
split命令可以將一個大檔案分割成很多個小檔案,有時需要將檔案分割成更小的片段,比如為提高可讀性,生成日誌等。
命令選項:
-b:值為每一輸出檔案的大小,預設單位為 byte。
-l:值為每一輸出檔的列數大小。

命令示例:
分割成每個為50k的檔案(注意當split分割完後會儲存原檔案)

[[email protected] test]# ls
a.txt
[[email protected] test]# du -sh a.txt
252K    a.txt
[[email protected] test]# split -b 50K a.txt        //使用-b選項,把a.txt檔案分割成每個為50k的小檔案。
[
[email protected]
test]# ls a.txt xaa xab xac xad xae xaf

使用分割並指明分割檔案的頭綴
[[email protected] test]# ls
a.txt
[[email protected] test]# split -b 50k a.txt aa //指明分割的檔案每個開頭為aa
[[email protected] test]# ls
aaaa aaab aaac aaad aaae aaaf a.txt

把a.txt分割成每個檔案最多有10行的檔案
[[email protected] test]# ls
a.txt
[

[email protected] test]# split -l 10 a.txt //分割成每個檔案最多有10行的小檔案
[[email protected] test]# ls
a.txt xaa xab xac //可見分了三個小檔案,每個檔案的內容為10行

2.另外幾個和管道有關的命令
cut 分割,-d 分隔符 -f 指定段號 -c 指定第幾個字元
sort 排序, -n 以數字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2
wc -l 統計行數 -m 統計字元數 -w 統計詞
例:cat a.txt | wc -l
uniq 去重, -c統計行數,必須先經過sort排序後才能去重
cat -A 檢視包括隱藏字元在內的所有內容

3.shell特殊符號
命令連線符: “||”、“&&”、“;”

cat a.txt ; cat b.txt : 不管cat a.txt是否執行成功都會執行cat b.txt;
cat a.txt &&cat b.txt : 只有cat a.txt執行成功後才會執行cat b.txt;
cat a.txt || cat b.txt : 表示cat a.txt執行成功後,cat b.txt不執行;

4.重定向
& 是一個描述符,如果1或2前不加&,會被當成一個普通檔案。

1>&2 意思是把標準輸出重定向到標準錯誤.

2>&1 意思是把標準錯誤輸出重定向到標準輸出。

&>filename 意思是把標準輸出和標準錯誤輸出都重定向到檔案filename中