linux 中awk命令实现字符串的精确匹配

 

001、

复制代码
root@DESKTOP-1N42TVH:/home/test3# ls
test.txt
root@DESKTOP-1N42TVH:/home/test3# cat test.txt   ## 测试数据
AKCR02000001    df
AKCR02000001    df
AKCR02000001    er
AKCR02000001.1  dg
AKCR02000001.1  der
AKCR02000001.1  fg
AKCR02000001.2  ee
AKCR02000001.2  ss
AKCR02000001.2  aa
aaad AKCR02000001 df
dsfdsffff AKCR02000001
eererr AKCR02000001.4 AKCR02000001
eererr AKCR02000001.4 eerr
root@DESKTOP-1N42TVH:/home/test3# awk '/AKCR02000001/' test.txt     ## 并不能实现精确匹配
AKCR02000001    df
AKCR02000001    df
AKCR02000001    er
AKCR02000001.1  dg
AKCR02000001.1  der
AKCR02000001.1  fg
AKCR02000001.2  ee
AKCR02000001.2  ss
AKCR02000001.2  aa
aaad AKCR02000001 df
dsfdsffff AKCR02000001
eererr AKCR02000001.4 AKCR02000001
eererr AKCR02000001.4 eerr
复制代码

 

 

002、实现方式1(同时考虑开头、中间、结尾的情况)

复制代码
root@DESKTOP-1N42TVH:/home/test3# ls
test.txt
root@DESKTOP-1N42TVH:/home/test3# cat test.txt
AKCR02000001    df
AKCR02000001    df
AKCR02000001    er
AKCR02000001.1  dg
AKCR02000001.1  der
AKCR02000001.1  fg
AKCR02000001.2  ee
AKCR02000001.2  ss
AKCR02000001.2  aa
aaad AKCR02000001 df
dsfdsffff AKCR02000001
eererr AKCR02000001.4 AKCR02000001
eererr AKCR02000001.4 eerr
root@DESKTOP-1N42TVH:/home/test3# awk '/^AKCR02000001[\t ]|[\t ]AKCR02000001[\t ]|[\t ]AKCR02000001$/' test.txt
AKCR02000001    df
AKCR02000001    df
AKCR02000001    er
aaad AKCR02000001 df
dsfdsffff AKCR02000001
eererr AKCR02000001.4 AKCR02000001
复制代码

 

 

003、实现方式2(利用awk循环实现)

复制代码
root@DESKTOP-1N42TVH:/home/test3# ls
test.txt
root@DESKTOP-1N42TVH:/home/test3# cat test.txt
AKCR02000001    df
AKCR02000001    df
AKCR02000001    er
AKCR02000001.1  dg
AKCR02000001.1  der
AKCR02000001.1  fg
AKCR02000001.2  ee
AKCR02000001.2  ss
AKCR02000001.2  aa
aaad AKCR02000001 df
dsfdsffff AKCR02000001
eererr AKCR02000001.4 AKCR02000001
eererr AKCR02000001.4 eerr
root@DESKTOP-1N42TVH:/home/test3# awk -v temp="AKCR02000001" '{j = 0; for(i = 1; i <= NF; i++) if($i == temp) {j++} if(j != 0) {print $0}}' test.txt
AKCR02000001    df
AKCR02000001    df
AKCR02000001    er
aaad AKCR02000001 df
dsfdsffff AKCR02000001
eererr AKCR02000001.4 AKCR02000001
复制代码

 

posted @   小鲨鱼2018  阅读(1418)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-07-08 计算机硬盘
2021-07-08 linux系统中sed删除指定的行
2021-07-08 bash: cmake: command not found...
2021-07-08 plink软件计算位点杂合度和样本杂合度
点击右上角即可分享
微信分享提示