2012-06-21 4 views
0

Я хочу передать вывод команды Sed переменной в пакетном режиме. Например, в файле «input.txt» у меня есть name=kiddy bla bla. Я хочу извлечь слово kiddy и сохранить его в переменной (скажем, name), поэтому я могу использовать его позже (с %name%).Вывести команду команды в переменную в пакете

ответ

1

Конечно, вы можете установить переменную с выходом команды sed с for цикла:

for /f %%v in ('sed blah blah...') do (set "name=%%v") 

Да, это не так интуитивно, но это работает.
Кроме того, вы можете изменить команду на все, что хотите, до тех пор, пока она находится между апострофами (').

P.S
Чтобы извлечь значение kiddy из name="kiddy" bla bla, использовать такой sed синтаксис:

sed "s/""/'/g" | sed "s/.*='\(.[^']*\)'.*/\1/" 
+0

для выжимания вещи, эту работу, если деточки был между "", как "Kiddy"? – Leo92

+0

@ Leo92 Это работает только для «kiddy» или «kiddy». Посмотрите на скрипт Sed. –

+0

ОК, я пытаюсь изменить имя с именем "using sed, sed" s/name/name "/ g", но это дало мне ошибку, я попробовал поставить \ before "" ошибка, устаревшая с^до "снова ошибка, я не знать, что делать, чтобы пропустить его, – Leo92

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