过滤无效的行,看配置文件有用

关键:\t不是tab,$’\t’才是
先模拟一个配置文件

  1. # cat /tmp/t.txt
  2. #next line is a blank
  3. #next line is a blank and #
  4. #
  5. #
  6. #next line is a tab
  7. #next line is nothing
  8. # begin with tab
  9. abc begin with tab
  10. bca begin with a blank
  11. cde

过滤只有空格的行:

cat /tmp/t.txt |grep -v "^ *$"

过滤只有tab的行

cat /tmp/t.txt |grep -v ^$'\t'*$

过滤只有空格、tab开头并紧接着#的行

cat /tmp/t.txt |grep -v "^ *$" | grep -v ^$'\t'*$ |grep -v "^ *#" |grep -v ^$'\t'*#

更简洁的写法

cat /tmp/t.txt |egrep -v "^ *($|#)"|egrep -v ^$'\t'*($|#)

更更简洁:其实就是用单引号把$单独隔离出来

cat /tmp/t.txt |egrep -v '^('$'\t| )*($|#)'