1

У меня есть текстовый файл, который выглядит так:

   rno-miR-344-5p
   miRPlus_11239/mmu-miR-383/rno-miR-383
   hsa-miR-301a/mmu-miR-301a/rno-miR-301a
   hsa-miR-199a-3p/hsa-miR-199b-3p/mmu-miR-199a-3p/mmu-miR-199b/rno-miR-199a-3p
   Empty
   Hy3
   rno-miR-1

   rno-miR-598-5p
   spike_control_h

   Empty

Я хотел бы напечатать каждую строку. НО для тех строк, которые содержат, например, hsa-miR-301a/mmu-miR-301a/rno-miR-301a, я хотел бы напечатать только часть rno-miR-etc.

Я пытался сделать это с помощью awk, но я не в себе.

1 ответ1

2

при условии, что косая черта происходит только на целевых строках:

awk -F/ '{print $NF}' file

будет печатать только последнее разделенное слешем поле. В строках без косой черты поле 1 также является последним полем.

Если вы нацелены на строки, начинающиеся с hsa-miR , то:

awk -F/ '/^hsa-miR/ {print $NF; next} {print}' file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .