почему команда Sed терпит неудачу с регулярным выражением - PullRequest
0 голосов
/ 27 сентября 2018

Я использую эту команду

sed ':a ;{N;/\n/,/};ba'

она показывает ошибку в regex.kindly помочь определить эту проблему.

Полная команда

SAMPLE_LIST=$ (ls*fastq.gz| awk -F"_" '{print $1}' | sort | uniq | sed ':a ;{N;/\n/,/};ba')

Ошибка bash: синтаксическая ошибка рядом с неожиданным токеном `('

Аналогично другой команде ..

FILE_List= $(ls merged_reads2/*/*join.fastq | sed ' :a ; {N;/\n/,/};ba')

Ошибка sed:-e выражение # 1, символ 19: регулярное выражение с неопределенным адресом

1 Ответ

0 голосов
/ 27 сентября 2018

В первом случае bash не работает, прежде чем sed сможет что-либо сделать из-за пробела между $ и (.(Там также отсутствует пробел после ls).

Команда sed не имеет смысла: a1,a2 - это синтаксис для введения «диапазона адресов».Адрес может быть совпадением, поэтому /\n/ - это один (который никогда не совпадает, потому что новые строки не являются частью содержимого строки, с которым сопоставляется sed), но / не является допустимым адресом.Что вы пытаетесь сопоставить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...