LINUX.ORG.RU

Помогите плиз с sed !!!)

 ,


0

1

Здравствуйте народ. Такой вопрос вот образец один. sed -i «55c$(cat /home/uname/Desktop/random/Year/output.txt | head -n1)» /home/uname/Desktop/Reg/Reg.sikuli/Reg.py

у меня копирует текст с одного документа в другой в 55 строчку. сам вопрос такой, как сделать 4 пробела перед тем ,когда вставляет сам текст в 55 строчку. именно 4 пробела не табуляция.

Ответ на: комментарий от xenlinux

А так?

$(echo "mansed" | sed 's/\(.\{3\}\)/\1 /g')

Вначале строки можно через 's/^/ /'
Количество пробелов варьируется.

yacuken ★★★★
()
Последнее исправление: yacuken (всего исправлений: 1)

промежуточный файл (туда и лидируищие пробелы добавить), потом sed '55 r file'

anonymous
()
Ответ на: комментарий от xenlinux

Ну обернуть в тег кода хотя бы?

anonymous
()
Ответ на: комментарий от xenlinux

Там было «29\t»? Если нужно удалить таб - просто в pipe: «head -1 | tr -d '\t'».

anonymous
()
Ответ на: комментарий от xenlinux

хотя ладно сделал .спасибо за помощь.

xenlinux
() автор топика
import sys
import fileinput

context = open('output.txt','r').read()
for i, line in enumerate(fileinput.input('Reg.py', inplace=1)):
    if i == 55-1:
        sys.stdout.write(context)
    sys.stdout.write(line)
anonymous
()
Ответ на: комментарий от anonymous

одно только дополнение, про пробелы забыл

context = ' '*4 + open('output.txt','r').read()

anonymous
()
Ответ на: комментарий от anonymous
#!/bin/bash

seq 60 >for.diff
seq 60 >Reg.py
echo 'type("14\t")'>output.txt

python -c '
import sys
import fileinput

context = " "*4 + open("output.txt","r").read()
for i, line in enumerate(fileinput.input("Reg.py", inplace=1)):
    if i == 55-1:
        sys.stdout.write(context)
    sys.stdout.write(line)
'

diff Reg.py for.diff

seq 60 >Reg.py
python -c 'c = open("Reg.py").read(); print c' >Reg.py
diff Reg.py for.diff
$ ./run.sh
55d54
<     type("14\t")
1c1,60
< 
---
> 1
> 2
> 3
...
> 60
anonymous
()
Ответ на: комментарий от anonymous

Файлы местами перепутал, извиняюсь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.