打印只有一个数字的行的shell脚本

小程府 发布于2017-09-05 16:16
  • 308 人浏览

打印只有一个数字的行的shell脚本

  1. #!/bin/bash
  2. # 第一种写法
  3. file=/etc/passwd
  4. line=`wc -l $file | awk '{print $1 }'`
  5. for (( i = 1; i <= $line; i++ )); do
  6. number=`sed -n "$i"p $file|grep -o '[0-9]'|wc -l`
  7. if [ $number == 2 ]; then
  8. sed -n "$i"p $file
  9. fi
  10. done
  11. # 第二种写法
  12. f=/etc/passwd
  13. line=`wc -l $f|awk '{print $1}'`
  14. for l in `seq 1 $line`; do
  15. n=`sed -n "$l"p $f|grep -o '[0-9]'|wc -l`;
  16. if [ $n -eq 1 ]; then
  17. sed -n "$l"p $f
  18. fi
  19. done

解读

1.wc -l

列出文件的行数


2.awk

awk是shell中很重要的命令,可以单独拿出一篇文章来介绍,这里用到的是打印第一列
awk '{print $1}'


3.sed

sed 命令也很多,一次列出来肯定记不住,只有通过实例,才能记得牢,这里的sed -n '5'p /etc/passwd是指打印出第5行


继续阅读

还有20%的精彩内容,登录继续阅读