繁体   English   中英

Awk子串一个字符

[英]Awk substring a single character

这是columns.txt

aaa bbb 3
ccc ddd 2
eee fff 1
3   3   g
3   hhh i
jjj 3   kkk
ll  3   mm
nn  oo  3

我可以找到第二列以“ b”开头的行:

awk '{if(substr($2,1,1)=="b") {print $0}}' columns.txt

我可以找到第二列以“ bb”开头的行:

awk '{if(substr($2,1,2)=="bb") {print $0}}' columns.txt

为什么哦为什么我找不到第二列中第二个字符为“b”的行?:

awk '{if(substr($2,2,2)=="b") {print $0}}' columns.txt 

awk -W version == GNU Awk 3.1.8

您可以使用:

awk 'substr($2,2,1) == "b"' columns.txt
aaa bbb 3
  1. substr函数的第3个参数是字符串的长度。
  2. print是awk中的默认操作。

awk '$2 ~ /^.b/' columns.txt . awk '$2 ~ /^.b/' columns.txt也将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM