2013-10-07 2 views
-1

В сценарии Jython я пытаюсь заменить всю строку текстового файла (2-я строка в этом случае) на адрес каталога, который содержит переменную (VAR).Использование sed в скрипте Jython для замены целой строки переменной в текстовом файле

obsids=str(obsids[i]) 
print type(obsids) 
os.system('sed -i "2 s:.*:/usr/data/$obsids/:" /usr/software/file.txt') 

Где obsids был юникода целого числа, то строка (обычно что-то вроде 1342204440).

Пожалуйста, подтвердите ошибку в моем скрипте.

Спасибо.

+0

Если вы хотите использовать переменную, а не текст '$ VAR', то вам нужно удвоить процитировать' sed' команду. – fedorqui

+0

Ваш фрагмент Python полностью сломан, и сообщение об ошибке также не читается. –

+0

@fedorqui спасибо, я не получаю сообщение об ошибке сейчас, и скрипт работает, но он не выполняет команду sed по желанию –

ответ

0

Мы получили его в комментариях:

obsids=str(obsids[i]) 
print type(obsids) 
os.environ['obsids']=obsids # this makes the Python variable behave inside UNIX 
os.system('sed -i "2 s:.*:/usr/data/$obsids/:" /usr/software/file.txt') 
+0

Он работает. Сэр, вы джентльмен и ученый. Спасибо за помощь! –

+0

Мы сделали это :) Это было прекрасное упражнение виртуальной отладки, молодцы! – fedorqui

 Смежные вопросы

  • Нет связанных вопросов^_^