2013-04-22 2 views
25

Я пытаюсь заменить все двойные кавычки в строке одиночными кавычками. здесь мое выражение:Заменить все двойные кавычки одиночными кавычками

echo "<a href=\"#\" id=\"resendActivationMailLink\">here</a>" | sed "s/\"/'/" 

, к сожалению, только первые двойные кавычки заменяют: S

<a href='#" id="resendActivationMailLink">here</a> 

какие идеи?

ответ

55

Вам нужно пройти g флаг sed:

sed "s/\"/'/g" 
+10

Чтобы запомнить это, это 'g' для' global'. – RichieHindle

+0

'echo '' Доброе утро, привинченный '' | sed 's/"/ \\"/g'' – YumYumYum

32

Вы можете использовать tr здесь, кратким и менее цитировал головной боли:

tr '"' "'" 
+1

+1 Отличная альтернатива и defenetly лучше, чем sed. – Zounadire

3

Это может работать для вас:

sed "y/\"/'/" file 
+0

Это выводит файл в командной строке, как вы можете изменить его сам? –

+1

@JasonBourne вы можете добавить переключатель '-i', чтобы отредактировать файл inplace i.e.' sed -i "y/\"/'/ "file' – potong

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