- 论坛徽章:
- 0
|
本帖最后由 sandao381 于 2012-06-15 17:42 编辑
回复 1# xindi10631
我这有个思路,还望对楼主有点用。
用awk 的fieldwidths 参数 对每行进行按字符数分割,第一个域就是 前 N个字符,第二个就是第 N+1 到N+10
,然后用gsub 对$2 进行替换最后拼接字符串。
附代码 仅供参考
1 n=9- seq -s '' 20 | awk -v FIELDWIDTHS="9 10" '{ arg=$0;gsub(/11/,"aa",$2);print $1 $2 substr(arg,20)}'
复制代码 2 n=6- echo "123abc456aababc789abcqweabcrtyabc"|awk -v FIELDWIDTHS="6 10" '{ arg=$0;gsub(/abc/,"xyz",$2);print $1 $2 substr(arg,17)}'
复制代码- echo "abcdeabcdeabcde"| awk -v FIELDWIDTHS="6 10" '{ arg=$0;gsub(/abc/,"xyz",$2);print $1 $2 substr(arg,17)}'
复制代码 |
|