各行の最初の数文字をegrepしますか?

各行の最初の数文字をegrepしますか?

テキストファイルがあるとしましょう。

txt.txt

hello supdijfdsfsddsgs
hghgh hsdjghjfhgjfhgjfhg
hghgh yyyyyereuryueyruey

5最初の文字だけがシーケンスになるようにこの行を印刷したいと思いますhghgh

だから印刷する必要があります

    hghgh hsdjghjfhgjfhgjfhg
    hghgh yyyyyereuryueyruey

egrepはどうすればいいですか?

egrep -5 "hghgh" txt.txt

ベストアンサー1

これにより、次のようになります。

grep '^hghgh' txt.txt

egrepisは(isgrep -Eと同様に)拡張正規表現を使用する必要はないので、ここでは必要ありません。fgrepgrep -F-E

^hghgh(デフォルト)行の先頭のリテラル文字列と一致する正規表現です。パターンを線の先頭に固定しますhghgh^

似合いたい場合精密文字列は、たとえば部分文字列ではhghghなく行の先頭にあります。次に、式の末尾にまたはを使用して単語の末尾に一致させます。hghghaaaaaahghgh\>\b[[:>:]]

grep '^hghgh\>' txt.txt

または、awk最初のフィールドを使用して文字列比較を実行します。

awk '$1 == "hghgh"' txt.txt

おすすめ記事