📜  awk 用变量替换文件中的字符串 (1)

📅  最后修改于: 2023-12-03 14:39:24.963000             🧑  作者: Mango

用变量替换文件中的字符串

在编程中,有时需要修改文件中的某些字符串。awk是一个非常强大的文本处理工具,可以用变量替换文件中的字符串。下面介绍一些常见的用法。

简单替换

假设有一个文件file.txt,其中包含字符串hello world,我们想把它替换成hello awk。可以使用下面的命令:

awk '{gsub(/world/,"awk"); print}' file.txt

这里用gsub函数把world替换成变量awk,然后用print打印输出。输出结果为:

hello awk
使用变量

可以通过命令行参数或环境变量来定义变量,然后在awk脚本中使用。假设我们定义一个变量name,并把值设置为awk,那么可以使用下面的命令把hello world替换成hello awk

awk -v name='awk' '{gsub(/world/,name); print}' file.txt

也可以使用环境变量来定义变量,例如:

export name='awk'
awk '{gsub(/world/,ENVIRON["name"]); print}' file.txt

这里使用ENVIRON数组获取环境变量,并将其赋值给变量name

修改文件

如果需要直接修改文件,可以使用awk的-i选项。例如,下面的命令把文件file.txt中的world替换成awk,并直接保存修改结果:

awk -i inplace '{gsub(/world/,"awk"); print}' file.txt

这会覆盖原始文件,所以请谨慎使用。

总结

以上就是awk中使用变量替换文件中的字符串的一些常用方法。通过这些技巧,你可以更方便地处理文本文件,提高自己的编程效率。