Добавить символ в определенной позиции в строке
Я столкнулся со следующей проблемой: мне нужно добавить место в определенной позиции в каждой строке, чтобы преобразовать данные из
ATOM 1 HT1 GLY 5 10.346 30.927 130.252 0.00 0.00
к (добавив пробел в 12-м столбце)
ATOM 1 HT1 GLY 5 10.346 30.927 130.252 0.00 0.00
Теперь мне удалось добиться этого с помощью:
cat $INFILE | cut -c-11 > $INFILE.1
cat $INFILE | cut -c12- > $INFILE.2
paste -d ' ' $INFILE.1 $INFILE.2 > $INFILE
Но может быть есть более элегантное решение, без использования временных файлов?
Заранее спасибо.
1 ответ
Решение
Вы, конечно, можете сделать это с sed
но я знаю perl
лучше...
perl -p -i -e 's/^(.{12})/$1 /' $INFILE
Потом
sed -i -e 's/^.\{12\}/& /' $INFILE