awkは2つの一致する行を探します。

awkは2つの一致する行を探します。

ファイルに次のものが含まれています

Today is 1 nice day
This is a perfect day
Tomorrow is 1/2 cool 1/2 hot day
What is Toy Story
Tonight is a dark night


「To」で始まり、
「day」で終わる行を見つける方法

これらのコマンドのどれも機能しません

awk '/^To[*]day$/ {print}' file

awk '/^To*day$/   {print}' file

awk '/^To.day$/   {print}' file

awk '/^To[.]day$/ {print}' file

ありがとうございます!

答え1

正規表現の.すべての文字と一致し、*説明する内容に添付された修飾子です。0個以上の項目。任意.*の数(0個以上)数値

したがって、Angeloが言ったように、次のようにすることができます。

awk '/^To.*day$/'

レコードの先頭(^)の後には、To任意の数の文字(.*)が続き、dayレコードの終わり($)が続きます。

または、次のように書くことができます。

awk '/^To/ && /day$/'

これは、文字ではなく文字を含むToレコードとも一致します。もう1つの違いは、/を/にday変更すると一致することです。Todayabccdeabcde

答え2

awk '$0 ~ /^To.*day$/  {print}' file

そうでなければ

awk '/^To.*day$/  {print}' file

または(基本的な作業はレコードを印刷するためです):

awk '/^To.*day$/' file

関連情報