fgrep行頭?



Fgrep Beginning Line



解決:

GNUを使ってPCREサポートを使用してビルドされた場合のgrep$ stringには含まれていません E、あなたはすることができます:

grep -P '^  Q $ string'

perlのrindex:



perl -sne'print if rindex($ _、$ string、0)== 0 '--- string =' $ string '

awk:

S = $ string awk'index($ 0、ENVIRON ['S'])== 1 ' 

データが非常に大きい場合は、grepは、awkなどのより柔軟なツールよりも高速である可能性があります。私がすることは、テキスト内の特殊文字を引用して呼び出すことですグリップ。



pattern = $(printf '%s  n' '$ literal_text' | sed's / [ [。* ^ $] / \&/ g ')grep' ^ $ pattern 'my-big-file

テキストにASCII文字のみが含まれている場合は、文字セットをCに設定して、grepがバイトのみに関係するようにします。一部の実装(GNU grepの多くのバージョンなど)では、マルチバイト文字によって速度が大幅に低下する可能性があります。

LC_CTYPE = C grep '^ $ pattern' my-big-file

正確な行全体を検索する場合は、そのためのオプションがあります。grep -Fx -e '$ literal_text'。ただし、これは正確に指定されたテキストで構成される行にのみ一致し、指定されたテキストで始まる行に一致する同様の方法はありません。


awk



awk -vword = 'miss。' 'index($ 0、word)== 1'ファイル

複数の単語の場合

awk'BEGIN {for(i = 2; i 私も空想このためのPython

python3 -c'sys.stdinの行のsyswords = tuple(sys.argv [1:])をインポートします:print(line if line.startswith(words)else ''、end = '') '