shell指令碼--管道的使用例項
阿新 • • 發佈:2019-01-10
管道經常用於拼接命令,通過管道可以執行一些複雜的資料處理操作。以下為在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檔案