Удалить все строки, содержащие обратную косую черту из текстового файла

У меня есть файл с таким содержимым:

apple
b\all
cat
\34
egg

Я хочу удалить все строки, содержащие обратную косую черту. Я попытался использовать

sed '/\/d' pdataf.txt

Но это не сработало. Что я должен попробовать?

1
задан 25 September 2016 в 12:31

2 ответа

Вам просто нужно уйти от обратной косой черты (убежать от побега!)

$ sed '/\\/d' pdataf.txt
apple
cat
egg
11
ответ дан 23 May 2018 в 05:47

Чтобы заменить его, вам нужно избежать обратной косой черты (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
1
ответ дан 23 May 2018 в 05:47

Другие вопросы по тегам:

Похожие вопросы: