1

Вот мой файл "test.txt":

  172.16.68.4
  172.16.68.3

Вот мой сценарий:

#!/bin/sh
ip="172.16.68.4"
sed '/$ip/d' $1

Пожалуйста, я хотел бы удалить строку из тестового файла, но у меня это не сработало. Есть идея, пожалуйста?

Большое спасибо за помощь.

С уважением.

3 ответа3

1

Возможное решение:

#!/bin/sh
ip="172.16.68.4"
sed -i "/\b\($ip\)\b/d" $1
1

Вам не хватает только двух вещей:

  • Флаг -i в команде sed :

    -i[SUFFIX], --in-place[=SUFFIX]
        edit files in place (makes backup if SUFFIX supplied)
    
  • Вы используете переменные, поэтому вы должны использовать двойные кавычки (") для расширения переменной.

Итак, ваша команда должна быть:

sed -i "/$ip/d" $1
0

Используйте двойные кавычки, чтобы оболочка раскрывала переменные, и вы можете посмотреть здесь:

https://stackoverflow.com/questions/5410757/delete-a-line-containing-a-specific-string-using-sed

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