gpt4 book ai didi

regex - 如何提取模式前的字符

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

我需要一些关于如何提取一行的特定字符串的帮助。

我有一个包含数千行的文件,如下所示:

Eukaryota; Alveolata; Ciliophora; Intramacronucleata; Paramecium#
Eukaryota; Viridiplantae; Streptophyta; Embryophyta#
Bacteria; Cyanobacteria; Synechococcales; Acaryochloridaceae; Acaryochloris#
Eukaryota; Viridiplantae#
Bacteria; Proteobacteria; Alphaproteobacteria#

我想获取每一行的第一项和最后一项。所以输出将是:

Eukaryota; Paramecium#
Eukaryota; Embryophyta#
Bacteria; Acaryochloris#
Eukaryota; Viridiplantae#
Bacteria; Alphaproteobacteria#

我知道如何获取第一列

awk '{print$1}' fileIn > fileOut

但我不知道如何获取最后一项,因为它总是在不同的列中。

我尝试添加 # 然后在 # 之前保留 XX 个字符

grep -E -o '.{X,X}PATTERN. fileIn > fileOut

输出如下:莱斯;磺草科;硫化叶菌#;热蛋白 enzyme 科;卡尔迪维尔加#莱斯;卤蕨科;卤虫# 卤蕨科;光晕#啤酒; Natrialbaceae; Natrialba#

但是我必须重复这个过程并删除 ;直到我只剩下最后一项。

我搜索过是否有任何 grep 或 awk 选项可以执行此操作,提取第一列和最后一列或仅提取附加到 # 的字符,但我找不到适合我的任何字符。

对于如何进行的任何建议,我将不胜感激。

谢谢。

最佳答案

$ awk 'BEGIN{FS=OFS=";"}{print $1,$NF}' file
Eukaryota; Paramecium#
Eukaryota; Embryophyta#
Bacteria; Acaryochloris#
Eukaryota; Viridiplantae#
Bacteria; Alphaproteobacteria#

关于regex - 如何提取模式前的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45321186/

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