2016-06-07 4 views
0

у меня есть строка, как показано ниже (одну длинную строку с пробелом в середине):SED не/AWK удалить строку до первого вхождения

100">16946083;Rapid_0201_Corrected_Pre_Sept12thDate.txt;5744-2;RapidReporting;RR_20160606115224556.fin.bc_lerr.xml "100">16946083;Rapid_0201_Corrected_Pre_Sept12thDate.txt;5744;RapidReporting;RR_20160606115224556.fin.bc_lerr.xml 

Я хочу, чтобы удалить изменяющуюся длину набора цифр между > и ;, которые , в этом примере означает удаление (первое вхождение) 16946083.

Этот текст является результатом моих sed и cut команд.

+1

Это 1 строка данных или 2 строки или? Удачи. – shellter

+0

Убедитесь, что я правильно истолковал ваш вопрос - в частности, вы указали одну строку вывода, а не две. –

+0

не показывайте нам вывод sed + cut для нас, чтобы применить другую команду, покажите нам ввод sed + cut, чтобы мы могли видеть, как лучше всего решить всю проблему. –

ответ

1

Как насчет

sed -e 's/>[0-9]\+;/>;/' 

, который будет найти первый > любое количество цифр и ; и заменить всю эту строку только >;

+0

Он работал как шарм! – user2570205

+2

Используется не совсем переносная нотация '\ +'; существует множество версий 'sed', которые не поддержат это. Это не похоже на проблему для OP (так что это, вероятно, GNU 'sed', который используется), но он не будет работать так, как написано в Mac OS X (BSD), Solaris, HP-UX, AIX - для но 4 других Unix-подобных операционных системах, если не установлено GNU 'sed'. Использование 'sed -e 's /> [0-9] [0-9] *; />; /'' будет переносимым для любой версии 'sed'. –

+0

@JonathanLeffler: Хорошая точка, но прямой POSIX-совместимый BRE-эквивалент ERE-конструкции '+' (и его нестандартная форма -GNU_BRE BRE '\ +') - '\ {1, \}'. – mklement0

0

более надежная версия будет

sed -r 's/>[^;]+;/>;/' 
+0

работает! это все равно лучше, чем упомянул Эрик? Я спрашиваю с точки зрения производительности. Я должен сделать это за миллион строк. – user2570205

+2

Я не думаю, что производительность будет заметно различной. Это удалит, если ваши данные имеют больше цифр. Если вы хотите ограничить только цифры, другая альтернатива лучше, так как более ограничительная. – karakfa

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