如何从“后”行中删除文本&引用;在awk?

如何从“后”行中删除文本&引用;在awk?,awk,Awk,我发现了一些类似问题的答案,作者希望删除字符串()中某个字符后的文本。我想做一件类似的事情,但是,我希望使用的字符是”,特别是当出现三次时,例如“…”。每当我使用找到的命令时,所有字符都会被删除 输入文件示例:infle.txt: GCA_000260195.2_FO_II5_V1_genomic.fna_Candidate_Sequence_11158-16380_64... * GCA_000350365.1_Foc4_1.0_B2_genomic.fna_Candidate_Sequenc

我发现了一些类似问题的答案,作者希望删除字符串()中某个字符后的文本。我想做一件类似的事情,但是,我希望使用的字符是
,特别是当出现三次时,例如
“…”
。每当我使用找到的命令时,所有字符都会被删除

输入文件示例:infle.txt:

GCA_000260195.2_FO_II5_V1_genomic.fna_Candidate_Sequence_11158-16380_64... *
GCA_000350365.1_Foc4_1.0_B2_genomic.fna_Candidate_Sequence_73046-78268_63... at 100.00%
GCA_001696625.1_C1HIR_9889_genomic.fna_Candidate_Sequence_338336-343558_32... at 100.00%
GCA_007994515.1_UK0001_genomic.fna_Candidate_Sequence_482256-487478_64... at 100.00%
GWHAASU00000000_FocTR4_58.genomic.fna_Candidate_Sequence_429502-434724_64... at 100.00%
示例命令1:
awk-F'.''{print$1}'infle.txt

示例命令1的输出只是空白

我试过把这些字符放在“”中

这将产生以下输出:

GCA_000260195.2_FO_II5_V1_genomic.fna_Candidate_Sequence_11158-16380_64... *
GCA_000350365.1_Foc4_1.0_B2_genomic.fna_Candidate_Sequence_73046-78268_63... at 100.00%
GCA_001696625.1_C1HIR_9889_genomic.fna_Candidate_Sequence_338336-343558_32... at 100.00%
GCA_007994515.1_UK0001_genomic.fna_Candidate_Sequence_482256-487478_64... at 100.00%
GWHAASU00000000_FocTR4_58.genomic.fna_Candidate_Sequence_429502-434724_64... at 100.00%
理想情况下,我希望输出如下所示:

GCA_000260195.2_FO_II5_V1_genomic.fna_Candidate_Sequence_11158-16380_64
GCA_000350365.1_Foc4_1.0_B2_genomic.fna_Candidate_Sequence_73046-78268_63
GCA_001696625.1_C1HIR_9889_genomic.fna_Candidate_Sequence_338336-343558_32
GCA_007994515.1_UK0001_genomic.fna_Candidate_Sequence_482256-487478_64
GWHAASU00000000_FocTR4_58.genomic.fna_Candidate_Sequence_429502-434724_64
如何删除“…”之后的文本而不替换所有文本

谢谢,
Jamie

你能试试下面的内容吗,你需要转义它来告诉
awk
当作一个文字字符

awk -F'\\.\\.\\.' '{print $1}' Input_file
或根据Sundeep先生的意见,使用:

awk -F'\\.{3}' '{print $1}' Input_file
更正OP的尝试:您也不需要将字段分隔符用作
-F'“…”
我们这里不需要使用
,而只使用
-F'您的分隔符“

奖金解决方案:如果不想使用字段分隔符,请在此处使用
sub

awk '{sub(/\.\.\..*/,"")} 1' Input_file
非常好,因为它展示了如何正确处理
FS
中的正则表达式元字符

这里有一个替代的
awk
,它不使用任何正则表达式,因此不需要任何转义:

awk '{print substr($0, 1, index($0, "...") - 1)}' file

也可以使用
-F'\\.{3}'
-F'[.]{3}'
@RavinderSingh13,效果非常好-感谢您提供的详细解决方案
awk '{print substr($0, 1, index($0, "...") - 1)}' file
GCA_000260195.2_FO_II5_V1_genomic.fna_Candidate_Sequence_11158-16380_64
GCA_000350365.1_Foc4_1.0_B2_genomic.fna_Candidate_Sequence_73046-78268_63
GCA_001696625.1_C1HIR_9889_genomic.fna_Candidate_Sequence_338336-343558_32
GCA_007994515.1_UK0001_genomic.fna_Candidate_Sequence_482256-487478_64
GWHAASU00000000_FocTR4_58.genomic.fna_Candidate_Sequence_429502-434724_64