Должна быть возможность сделать это с помощью sed, поместить это в файл (вы можете сделать это с помощью командной строки, -e, просто не забывая эти точки с запятой, или использовать отдельный ключ -e для каждой строки). ( РЕДАКТИРОВАТЬ: Имейте в виду, поскольку ваши данные разделены табуляцией, на самом деле они должны быть символом табуляции, а не пробелом в первых s //, убедитесь, что ваш редактор не превращает их в пространства)
#!/usr/bin/sed -f
h
s/ .*$//
y/0123/ACGT/
G
s/\n[0-3]*//
и используйте
./mycode somefile | sed -f sedfile
или chmod 755 sedfile
и сделать
./mycode somefile | sedfile
Выполнены следующие шаги:
- копировать буфер для хранения пробела (заменив удерживаемый контент из предыдущей строки, если есть)
- удалить завершающий материал (от первого пробела до конца строки)
- Transliterate
- добавить содержимое из пробела
- удалить символ новой строки (из шага добавления) и все цифры после него (до пробела)
По крайней мере, я работал над вашими данными.
EDIT :
Ах, вы хотели однострочник ...
GNU sed
sed -e "h;s/ .*$//;y/0123/ACGT/;G;s/\n[0-3]*//"
или old-school sed (без точек с запятой)
sed -e h -e "s/ .*$//" -e "y/0123/ACGT/" -e G -e "s/\n[0-3]*//"