编写Bash脚本实现文件创建、写入及文本替换需求求助
Bash脚本完善方案
完整实现脚本
# 写入指定内容到文件(不存在自动创建,存在则覆盖) cat > NewFile.txt << 'EOF' Write a bash script To show off Your scripting skills Then show the results EOF echo "=== 原始文件内容 ===" # 显示原始文件内容 cat NewFile.txt echo -e "\n=== 替换后的文件内容 ===" # 执行双规则文本替换,同时保留原始文件备份 sed -i.bak -e 's/Your/My/g' -e 's/Then/Now/g' NewFile.txt # 显示替换后的内容 cat NewFile.txt # 可选:如果不需要保留备份文件,取消下面一行的注释 # rm NewFile.txt.bak
关键修改说明
- 简化文件创建与内容写入:无需判断文件是否存在,用
Here Document语法直接写入指定内容,文件不存在会自动生成,存在则覆盖(若要追加内容,把>换成>>即可)。单引号包裹EOF是为了避免内容中的特殊字符被Shell解析。 - 移除冗余的用户输入步骤:你需求中已明确指定文件内容,不需要额外让用户输入,直接写入更符合需求。
- 用
sed高效处理文本替换:这是Bash中处理文本替换的标准工具,无需把文件加载到数组:-i.bak:原地修改文件的同时,生成.bak后缀的备份文件,防止误操作丢失原始内容-e:允许同时指定多个替换规则,s/原字符串/新字符串/g中的g表示全局替换所有匹配项
- 优化输出可读性:添加了分隔提示和换行,让不同阶段的输出更清晰区分。
内容的提问来源于stack exchange,提问作者user88888888
相关产品推荐
相关产品推荐

