gpt4 book ai didi

linux - 在具有两个分隔符的文件中搜索值

转载 作者:IT王子 更新时间:2023-10-29 01:03:22 25 4
gpt4 key购买 nike

我有以下格式的数据文件

1|col2|col3|105,230,3,44,59,62|col5
2|col2|col3|43,44|col5
3|col2|col3|1,2,3,4,5,6,7,8|col5
4|col2|col3|1,2,37|col5
  • 分隔符为“|”
  • 第 4 列是一组逗号分隔的数字。
  • 我需要在第 4 列中分别具有数字“3”的记录,但 43 或 33 等数字不应计算在内。
  • "3"可以在第 4 列的开头、第 4 列的中间或第 4 列的末尾

因此,上述给定数据的理想记录是

1|col2|col3|105,230,3,44,59,62|col5
3|col2|col3|1,2,3,4,5,6,7,8|col5

我目前正在使用以下命令,但我正在寻找更高效/更有条理的命令

awk -F"|" '$4 ~ /,3,/ || $4 ~ /^3,/ || $4 ~ /,3$/'

最佳答案

简称 GNU awk 解决方案:

awk -F'|' '$4 ~ /\<3\>/' file
  • \<\> - 分别代表单词开始结束

输出:

1|col2|col3|105,230,3,44,59,62|col5
3|col2|col3|1,2,3,4,5,6,7,8|col5

或者更统一/便携的:

awk -F'|' '$4 ~ /(^|,)3(,|$)/' file

关于linux - 在具有两个分隔符的文件中搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48883287/

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