我是 grep 和 UNIX 新手。我有一个数据样本,想要显示所有仅包含三个字符的名字,例如李_示例。但我这样做有些困难。我目前正在使用此代码
cat file.txt|grep -E "[A-Z][a-z]{2}"
,但它显示包含至少 3 个字符的所有名称,而不是仅 3 个字符
样本数据
名字 | 数字 |
---|---|
李_示例 | 1 |
赫克托_示例 | 2 |
您需要匹配名字后面的
_
。
grep -E "[A-Z][a-z]{2}_"
与
awk
:
awk -F_ 'length($1)==3{print $1}'
-F_
告诉 awk 按 _
分割输入行。 length($1) == 3
检查第一个字段(名称)是否为 3 个字符长,并且 {print $1}
在这种情况下打印名称。
可以尝试以下命令:
grep -w "..." file.txt