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