我有一个字符串,即。昨天。
我想匹配昨天中段的st,但我不想匹配快速(结尾处的st)或强(前面的st)。
我怎么用awk做到这一点?
这是我尝试编写的代码,但不起作用
if ($1 ~/!^st.*st.*!st$/)
答案 0 :(得分:2)
请您尝试以下。
awk '!/^st|st$/ && /.*st.*/' Input_file
答案 1 :(得分:1)
我会使用单词边界。
awk '!/\<st|st\>/ && /\<.+st.+\>/' file
然后,仅当行中没有以st
开头或结尾的单词时,才打印该行。并使用+
代替*
,以确保st
前后至少有一个字符
如果您想匹配单词中带有st
的单词,但也可以像st
一样将fastest
放在开头,则应该这样做:
awk '/\<.+st.+\>/' file