2016-06-06 4 views
-1

Мне нужно заменить довольно разнообразную строку, которая выглядит как таковой (Mac OS):GREP файлы и SED заменить случай нечувствительным

DBVARNAME="<anything>" 

или

dbvarname="<anything>" 

или любую другую комбинацию случая.

Мне нужно найти все вхождения этого в каждом файле и заменить его на «» (одно пустое пространство).

Вся линия была бы похожа на это:

<cfprocparam type="Out" dbvarname="locked" cfsqltype="CF_SQL_CHAR" variable="locked" value="#locked#"> 

Я попытался:

grep -irl dbvarname web|xargs sed -i '' 's/dbvarname=".*"//g' 

Я понимаю, что это чувствительно к регистру, который один вопрос. Другим является то, что есть некоторые случаи, когда есть запятая запятая после шаблона, а I НЕ хотят удалять эти вхождения.

Любая помощь приветствуется, спасибо.

+0

'sed' не поддерживает регистронезависимое согласования на OS X. –

+0

' Perl' должны работать (например, 'Perl -pe ' s/(dbvarname = ") [^"] */\ 1/i'') ... –

+0

Я не уверен, где вы имеете в виду точно в концевой запятой, в кавычках? –

ответ

1

или любая другая комбинация футляра.

[dD][bB][vV][aA][rR][nN][aA][mM][eE] 

Другая в том, что есть некоторые случаи, где есть конечные запятая по образцу, и я не хочу, чтобы удалить эти случаи.

...\([^,]\)/\1/g 

так, поставить их вместе:.

sed 's/[dD][bB][vV][aA][rR][nN][aA][mM][eE]="[^"]*"\([^,]\)/\1/g' 
Смежные вопросы