我需要为用户 ID 查找用户。从认证系统返回如下。现在使用 bash 脚本,我需要提取具有确切数字的行。不是 5 和 25 ..
------------
ID LOGIN
------------
28 user1
25 user2
5 user3
Run Code Online (Sandbox Code Playgroud)
如果我使用,grep 5我会得到 2 行,但我需要带有“5”的行。
有任何想法吗 ?
有几种方法可以做到。
恕我直言,最好的方法是使用awk,这在处理字段时很有用。
如果你想要一个grep基于的解决方案,我会这样做:
grep -w '^5'
Run Code Online (Sandbox Code Playgroud)
该-w通知grep相匹配的确切的词,所以这不会匹配“52”。"^" 告诉 grep 在行的开头搜索 5,如果有前导空格,这将失败。
该awk解决方案将如下所示:
awk '$1 == 5'
Run Code Online (Sandbox Code Playgroud)
如果您只需要用户名,即第二列:
awk '$1 == 5 {print $2}'
Run Code Online (Sandbox Code Playgroud)
如果您要搜索的是字符串而不是数值,请将字符串括在双引号中:
awk '$1 == "abc" {print $2}'
Run Code Online (Sandbox Code Playgroud)