обработка текста игнорировать 2-е вхождение подчеркивания - PullRequest
0 голосов
/ 31 октября 2019

данные должны игнорироваться со 2-го появления символа подчеркивания, их следует отсортировать и удалить дубликаты.

awk -F_ '{print $2}' file1 >> file 2; sort file1 | uniq ; i tried

****** ОТ ********

GGGGGGG             DDDDD   --> header
XYSER_YURTZ     SUMOT_2_058A     
XYSER_YURTZ     SUMOT_2_058B    
XYSER_YURTZ     HJRIT_6_51A     
XYSER_YURTZ     HJRIT_6_51B     
XYSER_YURTZ     HJRIT_6_51C    
XYSER_YURTZ     HJRIT_6_51D    
XYSER_YURTZ     HJRIT_6_51E    
XYSER_YURTZ     HJRIT_6_51F    
XYSER_YURTZ     HJRIT_6_520    
XYSER_YURTZ     HJRIT_6_521    
XYSER_GFRE      SUMOT_2_16C3    
XYSER_GFRE      SUMOT_2_16C4    
XYSER_GFRE      SUMOT_2_16C5    
XYSER_GFRE      SUMOT_2_16C6  
XYSER_GFRE      SUMOT_2_16C7  
XYSER_GFRE      SUMOT_2_16C8  
XYSER_GFRE      SUMOT_2_16C9  
XYSER_GFRE      SUMOT_2_16CA  
XYSER_GFRE      SUMOT_2_16CB  
XYSER_GFRE      SUMOT_2_16CC   
XYSER_GFRE      SUMOT_2_16CD  
XYSER_GFRE      SUMOT_2_16CE   
XYSER_GFRE      SUMOT_2_16CF  
XYSER_GFRE      SUMOT_2_16D0  
XYSER_GFRE      SUMOT_2_16D1  
XYSER_GFRE      SUMOT_2_16D2  
XYSER_GFRE      SUMOT_2_16D3  
XYSER_GFRE      SUMOT_2_16D4  
XYSER_GFRE      HJRIT_6_12E1    
XYSER_GFRE      HJRIT_6_12E2    
XYSER_GFRE      HJRIT_6_12E3    
XYSER_GFRE      HJRIT_6_12E4    
XYSER_GFRE      HJRIT_6_12E5   
XYSER_GFRE      HJRIT_6_12E6   
XYSER_GFRE      HJRIT_6_12E7   
XYSER_GFRE      HJRIT_6_12E8   
XYSER_GFRE      HJRIT_6_12E9   
XYSER_GFRE      HJRIT_6_12EA   
XYSER_GFRE      HJRIT_6_12EB   
XYSER_GFRE      HJRIT_6_12EC   
XYSER_GFRE      HJRIT_6_12ED   
XYSER_ALY1      XYSER_ALY1_0000   
XYSER_ALY       SUMOT_2_0497   
XYSER_ALY       SUMOT_2_0498   
XYSER_BAP01     SUMOT_2_020E 

TO

************** ВЫХОД 1 **************

GGGGGGG DDDDD   
XYSER_YURTZ SUMOT_2   
XYSER_YURTZ HJRIT_6   
XYSER_GFRE SUMOT_2   
XYSER_GFRE HJRIT_6   
XYSER_ALY1 XYSER_ALY1   
XYSER_ALY SUMOT_2       
XYSER_BAP01 SUMOT_2   
XYSER_BAP02 SUMOT_2   

************** ВЫХОД2 **************

DDDDD GGGGGGG   
SUMOT_2 XYSER_YURTZ  
SUMOT_2 XYSER_GFRE  
SUMOT_2 XYSER_ALY  
SUMOT_2 XYSER_BAP01  
SUMOT_2 XYSER_BAP02  
HJRIT_6 XYSER_YURTZ  
HJRIT_6 XYSER_GFRE  
XYSER_ALY1 XYSER_ALY1  

1 Ответ

0 голосов
/ 04 ноября 2019

В качестве примера ввода вы можете использовать

sed 's/_[^_]*$//' inputfile|sort|uniq

Это удалит последнее подчеркивание и все последующие символы.

Примечание. Команда sort может поместить заголовок между другимистрок, потому что он будет сортировать все данные в алфавитном порядке. В вашем примере это не проблема, поскольку строка заголовка GGGGGGG... будет отсортирована до XYSER_....

Если вы знаете, что подобные строки уже сгруппированы во входном файле, вы можете пропустить сортировку и использовать

sed 's/_[^_]*$//' inputfile|uniq
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...