$ sed -E '/^[^@+]/s/^(.{10}).*$/\1/' fastq
Это выполнит замену во всех строках, не начинающихся с @
или +
. Подстановка заменит всю строку только первыми 10 символами в строке.
Альтернативная формулировка:
$ sed -E 's/^([^@+].{10}).*$/\1/' fastq
Есть extundelete, magicrescue, testdisk и многое другое. Из них extundelete лучше всего соответствует вашим требованиям. Изучите вариант --restore-directory /some/path
. По крайней мере, вы можете правильно назвать свои файлы, поскольку они были названы до вашей ошибки. Вы также можете ограничить восстановление в диапазоне дат.