Chinaunix

标题: 如何过滤指定位数的字符串 [打印本页]

作者: zsgd    时间: 2013-08-05 15:12
标题: 如何过滤指定位数的字符串
有一个文件n行,每行里面有空格分开不同位数的字符串若干个,现在需要找出每行里面是4位的字符串,数据如下,谢谢


       8721 23ENY18  7985 99A2353  8864 99C4701  8721 23ENY12    8721 23ENY13        8721 06FZVF8
                     8852 06EMMZ7  8852 06H8HD7  
  
CNG28SZFQ"          7376 06P0245    7164 D637039      
           7979 99P3697              
         8864 99C1749               
               8722 23D4802         
7945 99M1231  8722 23D48908        7145 99A3347              
                        
         7164 0637091      7945 06F5346    7915 06CNZ58      
7945 99N9031  8722 23D4924
作者: 关阴月飞    时间: 2013-08-05 15:30
是这个意思不:
  1. awk -vRS=' '  'length($0)==4' urfile
复制代码

作者: zxd_echo    时间: 2013-08-05 15:30
awk '{for(i=1;i<=NF;i++){if(length($i)==4)print $i}}' file
作者: 代号:军刀    时间: 2013-08-05 15:33
  1. grep -oP '\b.{4}\b'
复制代码

作者: todayhero    时间: 2013-08-05 15:36
@zsgd
  1. awk  '{for(i=1;i<=NF;i++){if(length($i)==4)print $i}}' urfile      
复制代码

作者: zsgd    时间: 2013-08-05 15:38
非常感谢大家,谢谢。

需要努力学习了
作者: zxd_echo    时间: 2013-08-05 15:42
awk --re-interval -vRS=' ' '/^[0-9]{4}$/{print $0}'
作者: Shell_HAT    时间: 2013-08-05 16:23
回复 4# 代号:军刀


    结果里面有空行
作者: 代号:军刀    时间: 2013-08-05 16:33
回复 8# Shell_HAT


    grep -oP '\b[^ ]{4}\b'




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2