1、測試數據
root@DESKTOP-1N42TVH:/home/test/test# cat test.txt 2013 2014 2013 2014 1 1.3 0 0 0.9 1.7 0 0 0.9 1.3 4.2 0.9 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0
2、awk實現只匹配0的行
root@DESKTOP-1N42TVH:/home/test/test# cat test.txt 2013 2014 2013 2014 1 1.3 0 0 0.9 1.7 0 0 0.9 1.3 4.2 0.9 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0 root@DESKTOP-1N42TVH:/home/test/test# awk '/^0[^.]/ || /[\t ]0[^.]/' test.txt 1 1.3 0 0 0.9 1.7 0 0 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0
root@DESKTOP-1N42TVH:/home/test/test# cat test.txt 2013 2014 2013 2014 1 1.3 0 0 0.9 1.7 0 0 0.9 1.3 4.2 0.9 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0 root@DESKTOP-1N42TVH:/home/test/test# awk '/^0[\t ]/ || /[\t ]0[\t ]/' test.txt 1 1.3 0 0 0.9 1.7 0 0 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0
root@DESKTOP-1N42TVH:/home/test/test# cat test.txt 2013 2014 2013 2014 1 1.3 0 0 0.9 1.7 0 0 0.9 1.3 4.2 0.9 1 1.6 0 0.9 0 1.6 3 0.9 0.9 1.2 0 0 0.9 1.3 0 0 0.9 1.3 8 0 root@DESKTOP-1N42TVH:/home/test/test# awk '/^0[^.]/ || /\t0[^.]/ || /\t0$/' test.txt 1 1.3 0 0 0.9 1.7 0 0 1 1.6 0 0.9 0 1.6 3 0.9 0.9 1.2 0 0 0.9 1.3 0 0 0.9 1.3 8 0
3、grep實現
root@DESKTOP-1N42TVH:/home/test/test# cat test.txt
2013 2014 2013 2014
1 1.3 0 0
0.9 1.7 0 0
0.9 1.3 4.2 0.9
1 1.6 0 0.9
0 1.6 3 0.9
0.9 1.2 0 0
0.9 1.3 0 0
0.9 1.3 8 0
root@DESKTOP-1N42TVH:/home/test/test# sed 's/\t/ /g' test.txt > test2.txt
root@DESKTOP-1N42TVH:/home/test/test# ls
test.txt test2.txt
root@DESKTOP-1N42TVH:/home/test/test# cat test2.txt
2013 2014 2013 2014
1 1.3 0 0
0.9 1.7 0 0
0.9 1.3 4.2 0.9
1 1.6 0 0.9
0 1.6 3 0.9
0.9 1.2 0 0
0.9 1.3 0 0
0.9 1.3 8 0
root@DESKTOP-1N42TVH:/home/test/test# grep -E "^0[^.]| 0 | 0$" test2.txt
1 1.3 0 0
0.9 1.7 0 0
1 1.6 0 0.9
0 1.6 3 0.9
0.9 1.2 0 0
0.9 1.3 0 0
0.9 1.3 8 0
b、grep命令實現
root@DESKTOP-1N42TVH:/home/test# ls a.txt root@DESKTOP-1N42TVH:/home/test# cat a.txt 2013 2014 2013 2014 1 1.3 0 0 0.9 1.7 0 0 0.9 1.3 4.2 0.9 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0 root@DESKTOP-1N42TVH:/home/test# cat -A a.txt 2013 2014 2013 2014$ 1 1.3 0 0$ 0.9 1.7 0 0$ 0.9 1.3 4.2 0.9$ 1 1.6 0 0.9$ 0 1.6 0 0.9$ 0.9 1.2 0 0$ 0.9 1.3 0 0$ root@DESKTOP-1N42TVH:/home/test# grep $'[\t ]\+0' a.txt ## 提取0前面有空格或者制表符的行 1 1.3 0 0 0.9 1.7 0 0 0.9 1.3 4.2 0.9 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0 root@DESKTOP-1N42TVH:/home/test# grep $'[\t ]\+0' a.txt | grep $'0[\t ]\+' ## 利用管道,增加提取0后面有空格或者制表符的行 1 1.3 0 0 0.9 1.7 0 0 1 1.6 0 0.9 0 1.6 0 0.9 0.9 1.2 0 0 0.9 1.3 0 0