2013-12-18 2 views
-1

есть переменный, определенная в одном из профиля UNIX, какSed команды для отображения

sync="/aBCDEDF=="; export sync 
sync1="hikjl=="; export sync1 

, и я хочу, чтобы выход, который будет отображаться в качестве

sync=/aBCDEDF== 
sync1=hikjl== 

как можно отобразить с помощью патча в команду?

ответ

2

Я не думаю, что есть много смысла, используя sed; вы можете просто написать:

printf 'sync=%s\n' "$sync" 
printf 'sync1=%s\n' "$sync1" 

или:

echo "sync=$sync" 
echo "sync1=$sync1" 

(Оба обычно эквивалентны, но версия с printf более компактен, из-за капризов в обращении с обратной косой черты различными echo реализаций.)

+0

Он также может быть сделано с одной Printf вместо двух: 'Printf«синхронизации =% s \ nsync1 =% s '"$ sync" "$ sync1" '; и даже проще - 'printf 'sync =/aBCDEDF == \ nsync1 = hikjl =='' –

0

Предполагая, что ваш файл, названный infile выглядит то, что вы показали, следующее будет делать это:

sed 's/\([^;]*\);.*/\1/ 
s/\"//g' infile 
0

Это делает работу также

set | egrep 'sync1{0,1}=' 
# or 
set | egrep '(sync|sync1)=' 
0

Это может работать для вас (GNU СЭД):

sed -r 's/"([^"]*).*/\1/' file 
Смежные вопросы