我需要如何提取线的特定字符串一些帮助之前提取的字符。怎样的模式
我有这样的数千行的文件:
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
获得第1列,但我不知道如何得到最后一个项目,因为它总是在不同的列。
我尝试添加了#,然后自顾自地XX字符#之前
grep -E -o '.{X,X}PATTERN. fileIn > fileOut
其中,输出的样子: LES; Sulfolobaceae; Sulfolobus# ; Thermoproteaceae; Caldivirga# les; Haloferacaceae;沃# Haloferacaceae; Haloquadratum# ales; Natrialbaceae; Natrialba#
但后来我不得不重复该过程,并删除;直到我只剩最后一件东西。
我搜索,看看是否有任何的grep或awk的选项要做到这一点,提取1日和最后一列或提取连接到#只是字符,但我找不到任何为我工作。
我将不胜感激如何进行的任何建议。
谢谢。
你可以使用'$ NF'到得到每一行中的最后一个字段,这是你想要的吗? – CWLiu
感谢$ NF不正是我想要的,但它的情况下,工作我需要的只是最后一个项目。 :) – vimac