关于#linux#的问题:awk 中 gsub函数可以修改第n个字符开始到第n个字符结束的字符吗

awk 中 gsub函数可以修改第n个字符开始到第n个字符结束的字符吗?就像下面一样
file 文件内容
hello world linux
需要修改字符中7-11的字符为s,不以world作为关键字,gsub能实现吗?或者有更好的办法实现

$echo "hello world linux" | awk -F "" '{for (i=7; i<=11; i++) $i="N"} {print $0}' OFS=""

输出:hello NNNNN linux

awk用参数 -F "" 指定将字符串的每个字符视为一个单独的字段
然后循环更改第7到第11个字段为字符"N",最后输出行就是你要的结果

1.7-11是怎么来的?看看能不能换一种方式
2.如果是单行还是较好处理了。先把字符串分割成行,
再使用sed替换7-11行,走后在合成一个字符串就行了
3.或者截取前6位+sssss+第12位到最后就行了