文件包含
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或更多)的人物。
所以,就像安吉洛说的,你可以这样做:
awk '/^To.*day$/'
记录开头 ( ^
) 后跟To
任意数量的字符 ( .*
) ,然后day
是记录结尾 ( $
)。
或者,你可以这样写:
awk '/^To/ && /day$/'
这也将匹配介于之间To
和day
包含非字符的记录。另一个区别是当您将To
/替换day
为abc
/时cde
,它会匹配abcde
。
答案2
awk '$0 ~ /^To.*day$/ {print}' file
要不就
awk '/^To.*day$/ {print}' file
甚至(因为默认操作是打印记录):
awk '/^To.*day$/' file