今天在自學shell編程的過程中碰到一個題,是計算/etc/passwd文件中第10個用戶和第20個用戶的id號之和。在沒有使用head和tail的情況下,學習了另一個命令。
sed命令:
##### #!/bin/bash #vesion 2.0 echo "Add userid.id11 and id22." #Made by abc echo "Creation-time 20160720" echo "Time Now: $(date +%Y-%m-%d)" ID_Num11=$(cut -d: -f3 /etc/passwd | sed -n 11p) echo "ID_Num11=$ID_Num11." ID_Num22=$(cut -d: -f3 /etc/passwd | sed -n 22p) echo "ID_Num22=$ID_Num22." ID_SUM=$[$ID_Num11+$ID_Num22] echo "The id sum: $ID_SUM." #####此處用到選項是-n,安靜模式,經過處理的行會被列出。將cut之後的內容送給sed後,列出第十一行的內容,也就是第十一個用戶的ID號。
第二個程序,寫一個腳本計算/etc/rc.d/init.d/functions和/etc/inittab文件的空白行數之和。
##### #!/bin/bash #vesion 2.1 #made by GJy echo "Creation-time 2016720" echo "Function:Count empty line" echo "Date Now: $(date +%Y-%m-%d)" line_num1=$(grep -n ^#[[:space:]]*$ /etc/inittab | wc -l) echo "The empty line number of /etc/inittab is $line_num1" line_num2=$(grep -n ^[[:space:]]*$ /etc/rc.d/init.d/functions | wc -l) echo "The empty line number of /etc/rc.d/init.d/functions is $line_num2" emptyline_sum=$[$line_num1+$line_num2] echo "The sum of empty line is $emptyline_sum." echo "END" #####用到的是grep正則表達式,grep -n 顯示匹配行及行號;此處則為匹配到的空行傳給wc命令,統計行數。
本文出自 “11808130” 博客,謝絕轉載!