linux系統中如何精確匹配0


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM