Мне нужно создать большой текстовый файл, используя содержимое нескольких gzip-файлов с определенным шаблоном имени. Для этого я использовал:
find . -name '*dna.toplevel.txt.gz' -exec zcat {} >> all.txt \;
и это сработало просто отлично. Проблема в том, что теперь мне нужно редактировать текст на лету, чтобы заменить определенный символ ">" на ">имя файла|". Мне удалось приготовить это:
find . -name '*dna.toplevel.txt.gz' -exec zcat {} | sed 's/>/>{}|/g' >> all.txt \;
Но я получаю следующие ошибки:
- sed: не могу прочитать ;: Нет такого файла или каталога
- find: отсутствует аргумент для `-exec'
Я понимаю, бедный bash запутался, потому что я не правильно указал, где заканчивается каждая команда, но я понятия не имею, как это сделать правильно.