linux 中grep命令匹配指定长度的字符串

 

1、

复制代码
root@PC1:/home/test# ls
a.txt
root@PC1:/home/test# cat a.txt                 ## 测试数据
d xaa
c xaaa
d xaaaa
e xaaaaa
f xaaaaaa
d dff gfgfgf
e dfgdg gfdgedr
d dfef fcgfg
root@PC1:/home/test# grep -E -w "[^[:space:]]{3}" a.txt    ## 长度为3
d xaa
d dff gfgfgf
root@PC1:/home/test# grep -E -w "[^[:space:]]{4}" a.txt     ## 长度为4
c xaaa
d dfef fcgfg
root@PC1:/home/test# grep -E -w "[^[:space:]]{5}" a.txt
d xaaaa
e dfgdg gfdgedr
d dfef fcgfg
root@PC1:/home/test# grep -E -w "[^[:space:]]{7}" a.txt     ## 长度为7
f xaaaaaa
e dfgdg gfdgedr
复制代码

 

 

2、awk实现

复制代码
root@PC1:/home/test# ls
a.txt
root@PC1:/home/test# cat a.txt
d xaa
c xaaa
d xaaaa
e xaaaaa
f xaaaaaa
d dff gfgfgf
e dfgdg gfdgedr
d dfef fcgfg
root@PC1:/home/test# awk '{for(i = 1; i <= NF; i++) {if(length($i) == 3) printf("%s\n", $0)}}' a.txt     ## 输出长度为3的行
d xaa
d dff gfgfgf
root@PC1:/home/test# awk '{for(i = 1; i <= NF; i++) {if(length($i) == 4) printf("%s\n", $0)}}' a.txt     ## 长度为4
c xaaa
d dfef fcgfg
root@PC1:/home/test# awk '{for(i = 1; i <= NF; i++) {if(length($i) == 5) printf("%s\n", $0)}}' a.txt     ## 长度为5
d xaaaa
e dfgdg gfdgedr
d dfef fcgfg
复制代码

 

posted @   小鲨鱼2018  阅读(2061)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-05-09 python中global关键字实现在函数内部对全局变量进行修改
2020-05-09 redhat7 配置Yun软件仓库
2020-05-09 《Linux就该这么学》学习笔记 04
点击右上角即可分享
微信分享提示