求助怎么在awk里实现替换数据

2025-05-13 01:32:44
推荐回答(4个)
回答1:

BEGIN{
}

条件 {
#主块外的条件不用写if,正则的话用/包起来就行了
#10个字节不知道理解错了没有,是54字段到64字段吗?我当54到64字段处理了
for (i=54;i<65;i++) $i=0;
print
}

#awk不能实现原文件更改的,需要原文件更改的话得用sed,不过你可以先输出到一个临时文件然后替换回原文件名

回答2:

其实我学习AWK也不久,但是书上面是说不能修改输入的源文件的,修改的只是一个拷贝,所以还是尝试在输出中改吧,然后重定向到一个文件中,其实将其余部分原样输出,仅仅修改需要替换的部分,应该效果一样。

回答3:

awk中if条件的主体的主体body后面可以写awk中的任何语句,包含函数!但是awk是不能修改原文件,你要修改原文件的话,可以让他输出到一个文件中,否则采用重重定向!
举例:
cat a.txt
a test1
b test2
c test3
#awk 'BEGIN{print "extract sub string"} {if($1 ~/b/) {print substr($0,3)}'>result.txt

回答4:

awk不能修改原文件,你可以去 下个带 -i 的sed