2016-10-19 2 views
0

У меня есть файл с несколькими линий с следующим форматом:Поиска и замена части строки с помощью переменных в оболочке

#ABC-1X1X-XXX-8000-2AB-XXXX-3000    $(var1) $(var2) $(var3) $(var4) 

Посмотрев на ABC-1X1X-XXX-8000-2AB-XXXX-3000 Мне нужно удалить # и обновить файл. Запустите несколько других команд и верните их обратно в оригинал.

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

look_for=ABC-1X1X-XXX-8000-2AB-XXXX-3000 
found=($(grep $look_for $file)) 
sed -i "/$found/c \\$look_for" $file 

выход:

ABC-1X1X-XXX-8000-2AB-XXXX-3000     (missing all other variable) 
+0

Пожалуйста, обратите внимание на [редактирование-помощь] (http://stackoverflow.com/ редактирование-помощь). – Cyrus

ответ

0

Я попробовал это, и она работала:

sed -i "s/$found/$look_for/g" "$file" 
Смежные вопросы