我编写了一个 AWK 程序来将 i
更改为 I
并将 awk
更改为 AWK
。它可以工作,但它也会将每个包含 i
的单词更改为和一个 I
。所以 writing
会变成 wrItIng
.
如何让它只是将单词 i
更改为 I
?
这是我的程序:
'{gsub(/i/, "I");gsub(/awk/, "AWK");print}'
最佳答案
如果您使用的是 GNU awk
,支持egrep
表达式,所以您可能想要使用单词边界 \<
和 \>
:
pax> echo "Know that i am alive" | awk '{gsub(/\<i\>/,"I");print}'
Know that I am alive
pax> echo "awk is good to gawk at" | awk '{gsub(/\<awk\>/,"AWK");print}'
AWK is good to gawk at
关于awk 如何更改一个单词但不是每个字母的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20067482/