管道經常用於拼接命令,通過管道可以執行一些複雜的數據處理操作。以下爲在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文件