ファイル内のgまたは0から9までの数字で始まるすべての行をどのように検索しますか?
誰でもコマンドラインを助けることができますか?試してみましたが、gで始まるとどうしたらいいかわかりますが、gと0〜9で始まるとどうしたらいいかわかりません。
答え1
これは正規表現でgrepを非常に簡単に使用することです。これを行うことができます:
grep -E '^[g0-9]' file.txt
どんな部分が役に立つのかわかりませんが、正規表現をman grep
読んで理解することをお勧めします。
次のように-E
「実際の」正規表現を有効にする必要があります。grep
(詳細は「シェルグロビング」を検索してみてください。)
PS。この特定の検索では、-E
副作用なしに無視できます。そうでない場合はお見逃しなく知る無視できます。 (コメントに示すように、一部の人がこの問題に非常に興味があるため、これに言及するだけです。)
答え2
このようなツールは、ブールOR()grep
を理解する正規表現を使用します。|
基本正規表現
grep '^g\|^[0-9]' file
拡張正規表現
grep -E '^(g|[0-9])' file
Perl互換正規表現
grep -P '^(g|\d)' file
あるいは、他のツールを使用することもできます。
sed
sed -n '/^g/p;/^[0-9]/p' file
または
sed -En '/^(g|[0-9])/p' file
awk
awk '/^g|[0-9]/' file
perl
perl -ne 'print if /^(g|\d)/' file