Опустить слово с помощью grep

#bash

#bash

Вопрос:

Я пробовал эту команду тремя разными способами и каждый раз получал сообщение об ошибке. Я создал файл ~/nostdhome.txt , который содержит строки из /etc/passwd файла, которые не содержат текста home . (подразумевается, что у связанного пользователя есть нестандартный домашний каталог).

 xargs grep -iL "home" /etc/passwd > ~/nostdhome.txt
grep -iL "home" /etc/passwd > ~/nostdhome.txt
grep -hn home /etc/passwd > ~/nostdhome.txt
 

Комментарии:

1. Вы можете использовать grep -v

2. нет, -v не дает мне правильного вывода

3. grep -v «главная страница» /etc/passwd > ~/nostdhome.txt это не работает

4. Вы все еще получаете строки с home ?

Ответ №1:

Проблема в том, что -L подавляет обычный вывод и вместо этого печатает имя каждого входного файла, из которого не было бы напечатано никаких выходных данных… Аналогично, -l опция печатает каждое имя файла, из которого были бы напечатаны выходные данные.

Это должно делать то, что вы хотите: grep -iv "home" /etc/passwd >~/nostdhome.txt

Комментарии:

1. не стесняйтесь указывать в следующий раз, когда я сделаю что-то вроде grep | awk 🙂