grep:指定された位置で一致する行を開始します(最初のn文字をスキップ)

grep:指定された位置で一致する行を開始します(最初のn文字をスキップ)

次の形式行を含むファイルがあります。

2021-Jan-26 05:35  foo bar 2
2021-Jan-26 05:37  asdf 2 foo bar
2021-Jan-26 05:37  foo

私が興味のあるパターンは、位置20から始まります。したがって、特定のパターンのファイルを見つけるときは、最初の19文字をスキップしたいと思います(一致しません)。

だから最初の19文字を除いて、行のどこでもパターンを一致させたいと思います。

上記の例では、 を grep すると2ライン 1 とライン 2 のみを一致させようとします。

どうすればいいですかgrep

ベストアンサー1

grep最初の19文字を無視し、必要なパターンのみを一致させるGNUオプションを使用してください。

grep -P "(?<=.{19})2" file

出力:

2021年1月26日 05:35 プーバ2
2021年1月26日05:37 asdf2豊富なバー

おすすめ記事