我有一个 list.txt,其中包含以下几行。
Primer_Adapter_clean_KL01_BOLD1_100_KL01_BOLD1_100_N701_S507_L001_merged.fasta
Primer_Adapt_clean_KL01_BOLD1_500_KL01_BOLD1_500_N704_S507_L001_merged.fasta
Primer_Adapt_clean_LD03_BOLD2_Sessile_LD03_BOLD2_Sessile_N710_S506_L001_merged.fasta
现在我只想获取第四个下划线和第七个下划线之间的子字符串,如下所示
BOLD1_100_KL01
BOLD1_500_KL01
BOLD2_Sessile_LD03
我尝试了下面的 awk 命令,但我想我弄错了。任何帮助将不胜感激。如果这可以通过 sed 实现,我也会对该解决方案感兴趣。
awk -v FPAT="[^__]*" '$4=$7' list.txt
最佳答案
我觉得 awk
对此有点过分了。您可以使用 cut
仅选择您想要的字段:
$ cut -d_ -f5-7 list.txt
BOLD1_100_KL01
BOLD1_500_KL01
BOLD2_Sessile_LD03
关于bash - 仅抓取文件所有行中第四个和第七个下划线之间的文本/子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62480062/