2014-02-11 3 views
0

Это мои данные:Символы Grep и символ из строки. Perl

@someDescription ID 1234_Reverse_4321 ... 
@someDescription 1234_4321 ... 
@someDescription ID 1234_4321 ... 

Я хочу, чтобы Grep из них из каждой строки:

1234_Reverse_4321 
1234_4321 

Я использую Perl, но я также знаком с Баш.
Я использовал эти числа, но практически мой диапазон от 600-5000 (но потенциально может быть от 0-10,000)

я бы не иметь эту проблему, если файл был равномерно отформатирован с пробелами, когда данные не доступны (строка 2).

+0

Я установил его, используя свое собственное решение. Спасибо за вашу помощь! Это помогло мне дойти до решения @grepped = grep (/:? D \ d \ d \ d \ d \ d) (?: _ | _RevStrand_) (?: \ d | \ d \ d | \ d \ d \ d | \ d \ d \ d \ d) /, @ линия); Спасибо за вашу помощь! Это помогло мне найти собственное решение. – IMPERATOR

+0

Его можно было бы сократить до: '\ d + _ (?: Reverse _)? \ D +' – Toto

ответ

3

Лучше использовать AWK для этого:

awk 'NF>2 {print $3}' file 
1234_Reverse_4321 
1234_4321 
1234_4321 
+0

Можете ли вы изменить это, чтобы я мог вырезать все экземпляры этого шаблона в каждой строке? – IMPERATOR

+0

Извините, не получилось, вы не хотите, чтобы 3-й столбец выводился? Нужен другой выход? – anubhava

Смежные вопросы