gpt4 book ai didi

shell - 使用 awk 提取包含特定单词的行记录

转载 作者:行者123 更新时间:2023-12-01 12:52:59 26 4
gpt4 key购买 nike

假设我的输入文件是制表符分隔的,我如何确定 $0 是否包含单词“hello”并且它需要不区分大小写?

here is a hello       whateverColumn2
nonono nonono whateverItIs
here HeLLo again mockColumn2

非常感谢!

最佳答案

给定文件 data.txt 中的行:

awk -F"\t" '/hello/ {print $0}' data.txt

将打印

here is a hello       whateverColumn2
here hello again mockColumn2

-F"\t" 将制表符设置为输入行的字段分隔符。

更新(根据 OP 在下方评论中的请求):

为了制作这个case-insensitive使用 IGNORECASE 标志:

awk -F"\t" 'BEGIN{IGNORECASE=1} /hello/ {print $0}' data.txt

请注意 IGNORECASE variable是 GNU 扩展,在其他版本的 AWK 中可能不可用。

或者,使用 match 的示例。为了使这里不区分大小写,将输入转换为小写:

awk -F"\t" '{if (match(tolower($0), "hello")) print $0}' data.txt

因为匹配可以取 regular expressions ,使用正确的正则表达式可能不需要转换为小写。

在 Linux 下使用 GNU Awk 3.1.6 测试

关于shell - 使用 awk 提取包含特定单词的行记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11106588/

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