使用Awk处理模板并保存至远程服务器时遇文件找不到错误求助
问题分析与解决
核心原因
报错127.0.0.1/test/service/cert_new.html: No such file or directory的本质是:重定向符号>>仅能创建新文件,但不会自动生成不存在的父目录。如果${web}service/对应的目录(即127.0.0.1/test/service/)未提前创建,系统就无法生成目标输出文件。
修复步骤
提前创建目标文件的父目录
使用mkdir -p命令递归创建所需目录(即使上级目录不存在也能自动生成):mkdir -p "$(dirname "${web}service/cert_new.html")"其中
dirname会自动提取目标文件的父路径,确保整个目录结构存在。修正Awk命令的变量引用
为避免变量包含空格或特殊字符时出现异常,给所有变量和路径添加双引号:awk -v host="$host" -v stockcode="$other1" '{sub(/DIGICODE/,host);sub(/SYSMAN/,stockcode); print }' "${web}service/cert.html" >> "${web}service/cert_new.html"
是否继续使用Awk?
完全可以继续使用Awk。你的需求是替换模板文件中的指定字符串,Awk是处理这类文本替换场景的高效工具,语法清晰且满足需求,无需更换其他工具。
内容的提问来源于stack exchange,提问作者Boxza
相关产品推荐
相关产品推荐

