У меня есть файл с таким содержимым:
apple
b\all
cat
\34
egg
Я хочу удалить все строки, содержащие обратную косую черту. Я попытался использовать
sed '/\/d' pdataf.txt
Но это не сработало. Что я должен попробовать?
Вам просто нужно уйти от обратной косой черты (убежать от побега!)
$ sed '/\\/d' pdataf.txt
apple
cat
egg
Чтобы заменить его, вам нужно избежать обратной косой черты (escape-символ). И если ваша версия sed поддерживает его, опция -i (на месте) будет делать изменения в вашем файле без необходимости предоставления промежуточного файла. Кроме того, если вы используете опцию -i, обратите внимание, что она принимает (рекомендуется!) Расширение файла резервной копии, однако, если вы его не предоставили, полезно предшествовать команде sed с -e, чтобы сообщить sed, что вы не используете расширение файла резервной копии.
Объединяя все это:
# Run sed to remove lines with backslash in them
$ sed -i -e '/\\/d' pdataf.txt
# Cat your file to confirm edits
$ cat pdataf.txt
apple
cat
egg