今天在自学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” 博客,谢绝转载!
原文地址:http://11818130.blog.51cto.com/11808130/1828579