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