Это частичный ответ, поскольку он гипотетический, и спрашивающий не думает, что они сделали все следующее.
Как упоминалось в комментариях от Ральфа Рёнквиста , «Mac использует ^ M
в качестве окончания строки, Windows использует ^ M ^ J
, а в Unix используется ^ J
". Vim может работать со всеми тремя форматами. Например, вы можете создать новый файл и указать, который будет использоваться при сохранении, с помощью (например) : set ff = mac
.
Если вы открываете файл с помощью vim, он может автоматически определять кодировку и соответствующим образом отображать новые строки. Однако vim будет рассматривать только форматы, указанные в fileformats
.Следовательно, если fileformats = unix, dos
, то vim никогда не будет рассматривать открытие файла в формате Mac. Итак, если вы создали файл в Mac vim (то есть с символом новой строки Mac), а затем открыли файл в Linux vim (то есть с fileformats = unix, dos
), то вы увидите ^ M
вместо символов новой строки. Возможно, вы обработали весь файл на Mac после создания.
Еще один момент, который следует учитывать, если вы можете создать файл в одном формате, а затем добавить его к файлу с помощью echo foo >> filename
. Если исходный формат - Mac, а вы добавляете его в Linux, то файл будет содержать смесь форматов. Предполагая, что форматы файлов
установлены свободно (например, fileformats = unix, dos, mac
, vim в этом случае выбирает формат Mac.
$irndb
читается как одна переменная с именем irndb
. Вы можете изменить синтаксический анализ, чтобы использовать только i
в качестве имени переменной с помощью${i}rndb
:
for i in {1..1000}
do
MotifPSSM../source/FruR-DPInteract.txt genrand/randomseq_${i}rndb > motifoutput/output_$i
done
Цикл for
сам по себе был в порядке, включая расширение фигурной скобки {1..1000}
, так что вам не нужно его менять.