gpt4 book ai didi

regex - 用于在文本文件中搜索列的正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:43 25 4
gpt4 key购买 nike

我在获取将在指定列中搜索输入项的正则表达式时遇到问题。如果在该列中找到该术语,则需要输出整行。这些是我的变量:

sreg = search word  #Example: Adam
file = text file #Example: Contacts.txt
sfield = column number #Example: 1

文本文件采用这种格式,空格作为字段分隔符,有许多联系人条目:

    First Last Email Phone Category    
Adam aster junfmr@ 8473847548 word
Jeff Williams 43wadsfddf@ 940342221995 friend
JOhn smart qwer@qwer 999999393 enemy
yooun yeall adada 111223123 other
zefir sentr jjdirutk@jd 8847394578 other

我试过没有成功:

grep "$sreg" "$file" | cut -d " " -f"$sfield"-"$sfield"
awk -F, '{ if ($sreg == $sfield) print $0 }' "$file"
awk -v s="$sreg" -v c="$sfield" '$c == s { print $0 }' "$file"

感谢您的帮助!

最佳答案

awk 可能是最好的解决方案:

awk -v field="$field" -v name="$name" '$field==name' "$file"

这将检查字段编号 $field 是否具有值 $name。如果是这样,awk 会自动打印包含它的完整行。

例如:

$ field=1
$ name="Adam"
$ file="your_file"
$ awk -v field="$field" -v name="$name" '$field==name' "$file"
Adam aster junfmr@ 8473847548 word

如您所见,我们使用 -v var="$bash_var" 提供参数,以便您可以在 awk 中使用它们。

此外,空格是字段分隔符,因此您无需指定它,因为它是默认值。

关于regex - 用于在文本文件中搜索列的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33611914/

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