テキストから数字を検索[閉じる]

テキストから数字を検索[閉じる]

特定の番号を検索したいテキストファイルがあります。テキストファイルが次のようになるとします。

asdg32dasdgdsa
dsagdssa11
adad 12345
dsaga

さて、長さ5の数字を検索して印刷したいと思います(12345)。

Linuxでこれを行うにはどうすればよいですか?

ベストアンサー1

grep次のコマンドを探しています。

DESCRIPTION
   grep searches the named input FILEs for lines containing a match to the
   given PATTERN.  If no files are specified, or if the file “-” is given,
   grep  searches  standard  input.   By default, grep prints the matching
   lines.

したがって、数字を見つけるには、12345次を実行します。

$ grep 12345 file
adad 12345

これにより、一致するすべての行が印刷されます12345。行の一致部分のみを印刷するには、次の-oフラグを使用します。

$ grep -o 12345 file
12345

長さが5の連続した数字を見つけるには、次のいずれかを使用できます。

$ grep -o '[0-9][0-9][0-9][0-9][0-9]' file
12345
$ grep -o '[0-9]\{5\}' file
12345
$ grep -Eo '[0-9]{5}' file 
12345
$ grep -Po '\d{5}' file 
12345

同じことを行いますが、5桁より長い数字を無視するには、次のようにします。

$ grep -Po '[^\d]\K[0-9]{5}[^\d]*' file
12345

おすすめ記事