gpt4 book ai didi

linux - 在 shell/linux 中 grep 查找文本文件第一列中的特定字符串

转载 作者:太空宇宙 更新时间:2023-11-04 05:33:29 25 4
gpt4 key购买 nike

在 shell 中 grep 查找文本文件第一列中的特定字符串。

我有包含输出的文本文件,如下所示:

29913  20   0 13164 5100 1060 S 34.1  0.0   0:00.18 option        
32725 20 0 9408 948 588 S 18.9 0.0 1231:22 option1
30168 20 0 12532 4588 1056 S 13.3 0.0 0:00.07 option2
9963 20 0 38912 2088 648 S 7.6 0.0 25:48.13 option2

我想仅在文本文件的第一列中 grep 字符串“9963”,因为也有可能在文件的其他列中找到相同的数字。在 grep 出该特定字符串后,我希望将整行打印为输出。

输出应该是:

9963 20   0 38912 2088  648 S  7.6  0.0  25:48.13 option2

请帮助我实现这一目标。

最佳答案

awk 还提供了一种识别所需记录的简单方法(并且您拥有 awk 的全部功能来执行所需的任何其他操作),例如

$ awk '/^9963/' file
9963 20 0 38912 2088 648 S 7.6 0.0 25:48.13 option2

在上面,您只需搜索与 ^9963 匹配的记录,并依靠默认的打印操作从文件中输出该行。

awk 中使用 Shell 变量

您可以在 awk 中使用 shell 变量,方法是在开头使用 -v var=value 选项(或在 BEGIN{...} 规则中)将其设为 awk 变量。您不能将该变量用作正则表达式的一部分,但可以使用 == 运算符以及 substrlength 函数与字符串的第一个进行比较,例如

$ b=9963; awk -v b="$b" 'b == substr($1,1,length(b))'
9963 20 0 38912 2088 648 S 7.6 0.0 25:48.13 option2

关于linux - 在 shell/linux 中 grep 查找文本文件第一列中的特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57370070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com