1. 程式人生 > >shell指令碼--管道的使用例項

shell指令碼--管道的使用例項

管道經常用於拼接命令,通過管道可以執行一些複雜的資料處理操作。以下為在shell中使用管道處理資料的的幾個例項

示例1:生成一個8位的隨機密碼

tr -dc A-Za-z0-9_ </dev/urandom  | head -c 8 | xargs


示例2:檢視系統中所有的使用者名稱稱,並按字母排序

awk -F: '{print $1}'  /etc/passwd | sort


示例3:列出當前使用者使用最多的5個命令(print的列數根據實際情況而定)

history | awk '{print $2}' | sort | uniq -u | sort -rn | head -5


示例4:檢視系統中有哪些使用者的登陸shell時/bin/bash

cat /etc/passwd | grep "/bin/bash" | cut -d: -f1,6     

#cut -d: -f1,6 表示以:為分隔符顯示第1和第6列的內容-d指定分隔符,-f指定列


示例5:檢視當前目錄的子目錄個數

ls -l | cut -c 1 | grep "d" | wc -l

#ls -l   長格式列出當前目錄的所有內容,每行的第一個字元表示檔案的類

#cut -c 1  擷取每行的第一個字元

#grep "d"  獲取檔案型別是目錄的行

#wc -l   統計grep命令輸出的行數,即子目錄個數、


示例6:合併兩個檔案的內容

cat 1.txt | paste -d: 2.txt -

#paste -d: 2.txt - 表示以:為分割符合並兩個檔案,合併時2.txt檔案的內容在前  -代表1.txt檔案