Использовать 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 file.txt

вы можете использовать

файл 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