linux - 第一次出现数字后的 grep 字符串

标签 linux string unix grep

如何在第一次出现数字后获取字符串?

例如,我有一个包含多行的文件:

  34 abcdefg
10 abcd 123
    999 abc defg

我想得到以下输出:

abcdefg
abcd 123
abc defg

谢谢。

最佳答案

您可以为此使用 Awk,遍历每行中的所有列直到 NF(每行的最后一列),一旦匹配到第一个单词,就打印它旁边的列。 break 语句将在第一次迭代后退出 for 循环。

awk '{ for(i=1;i<=NF;i++) if ($i ~ /[[:digit:]]+/) { print $(i+1); break } }' file

关于linux - 第一次出现数字后的 grep 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48644366/

相关文章:

linux - 我如何正确引用此 bash 管道以供观看?

linux - 特定网络上的SSH断开管道

string - 将 NSDate 转换为 NSString 时设置了错误的年份

python - 如何在 python 中的 %s 之后使用 %?

c++ - 延迟文件数据几分钟

C++ 如何将整数和 float 等数据类型编码为字节串?

c++ - 未找到 ServerSocket.h 和 ServerException.h C++

linux - 如何查看标签的年龄?

javascript - 如何通过索引从数组中删除重复字符串?

c++ - 从已经关闭的套接字接收数据?