Использовать grep для поиска слов, начинающихся с буквы "S"
Я пытаюсь использовать grep, чтобы просмотреть файл и найти слова, начинающиеся с строчной буквы "s". Фрагмент файла:
sjpope   pts/2    161.133.12.95    10:21am 43.00s  0.13s  0.01s  man bc
rmschalk pts/3    161.133.9.147    10:22am  1.00s  0.10s  0.02s  vi testb
jntrudel pts/4    161.133.9.11     10:23am  2.00s  0.09s  0.00s  vi testb
tjbanks  pts/5    161.133.9.70     10:41am  8.00s  0.06s  0.04s  -ksh
Я хочу, чтобы на выходе была строка с указанием "s".
5 ответов
для всех этих, которые хотят найти слова начиная с данной буквы не для строки этот ОДН-вкладыш сделает:
grep -E '\bs' file.txt # all words starting with s
grep -E 's\b' file.txt # all words ending with s
Я знаю, что это не стандарт grep поведение (\b якорь регулярных выражений, что означает, что Word break не является стандартом расширенных регулярных выражений), но он работает в большинстве современных систем.
вы можете использовать
файл grep ^s.txt
команда для получения списка всех строк, начиная с символа s.
используя стандартные grep вы можете найти слова начиная с s, используя \< (начало слова) и \>(конец слова) регулярное выражение:
grep '\<[s][[:alpha:]]*\>' file.txt # Words starting with s
также, если вы хотите вывести строки начиная с s, вам просто нужно использовать ^ символ:
grep '^s' file.txt # Lines starting with s
вы пробовали использовать регулярное выражение? The ^ символ будет искать с начала строки. В вашем конкретном случае, например, если вы хотите, чтобы все результаты начинались с нижнего регистра "s":
    cat file | grep ^s
или просто
grep ^s file
