есть файл с множеством строк видаXCXC434-zas;zzzMN000034535
XCXC434-zas;zzzMN3534535
XCXC434-zas;zzzMN067034535
подскажите пожалуйста, как удалить все до MNт.е чтобы осталось
MN000034535
MN3534535
MN067034535все перепробовал не получается
заранее благодарен
используйте для awk в качестве разделителя zzz если все строки такие как вы привели, примерно так
cat file | awk -F'zzz' '{print $2}' > new_file
sed "s/\(.*\)zzz\(MN.*\)/\2/" < file > new_file
Удаление всего до последнего(или единственного) MN
sed -e 's/^.*MN/MN/'
Если же MN может встретится больше чем один раз и нужно удалить до первого, то придется ограничить жадность *. Чтобы не возится с версиями и опциями sed воспользуемся perl
perl -pe 's/^.*?MN/MN/'
Вариант для awk если всего один раз MN
awk -F 'MN' '{print "MN"$2}'Как легко заметить ни один из вариантов не использует зависимость от zzz
P.S. у perl и sed есть замечательный ключ i, который позволяет редактировать файл не порождая извратов типа <old >new