2

Скажем, есть текстовый файл, как показано ниже:

Hello world
types=""
Mario
types="Game"

Я хочу найти первое вхождение type="" и добавить слово "program". Мне нужен вывод как:

Hello world
types="program"
Mario
types="Game"

Мне нужно использовать это в сценариях оболочки Unix. То, что я пытался это:

sed -i '1,/types=""/s/types=""/types="program"/' filename

Как выглядит команда, она только вставляет, но не добавляет. Я попытался добавить a\ но он все еще не работает.

1 ответ1

3

Ваша однострочная замена sed кажется, уже работает так, как вы собираетесь:

$ cat t.txt
Hello world
types=""
Mario
types="Game"

$ sed '1,/types=""/s/types=""/types="program"/' t.txt

Hello world
types="program"
Mario
types="Game"

Возможно, стоит отредактировать ваш вопрос, чтобы показать, что вы получаете, когда запускаете команду sed (без опции -i чтобы результаты выводились на терминал).

Кстати, ваш диапазон 1,/types=""/ является избыточным. Вы можете упростить это как:

sed '/types=""/s/types=""/types="program"/' t.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .