可以使用以下的解决方案:
将awk -i inplace替换为sed -i命令,因为sed命令可以原地编辑文件。
使用管道将awk命令的输出传递到临时文件中,然后重命名临时文件为原文件名。
例如,假设你要修改名为file.txt的文件中的文本,并将其保存回原文件。 可以使用以下脚本:
#!/bin/bash
awk '{gsub(/old_text/,"new_text")}1' file.txt > tmp_file && mv tmp_file file.txt
此脚本将使用awk找到并替换file.txt文件中的文本,然后使用管道将输出重定向到名为tmp_file的临时文件中。最后,它将使用mv命令将tmp_file文件重命名为file.txt。