使用 bash 编辑多个文件

Posted

技术标签:

【中文标题】使用 bash 编辑多个文件【英文标题】:Editing multiple files with bash 【发布时间】:2020-09-09 03:30:34 【问题描述】:

所以我有一堆文件,我想使用sed 一次编辑,但问题是我需要编辑一行并将文本更改为存储在变量文件名中的文件名。每次我尝试时,它都会将文本更改为文字“文件名”,我不知道如何修复它。

我使用的命令是:

sed -i 's/$x/'$filename'/g' *.html

【问题讨论】:

一个好主意是展示你是如何做到的,这样我们就可以更好地理解它并帮助你。理论上很难解决。 欢迎来到 Stack Overflow。 SO 是面向专业和热情的程序员的问答页面。将您自己的代码添加到您的问题中。您应该至少展示自己为解决这个问题所做的研究。 请在您的问题中添加示例输入(无描述、无图像、无链接)以及该示例输入所需的输出(无评论)。 【参考方案1】:

根据您的描述和使用的命令,我假设您尝试替换存储在

中的变量文本
X="text2replace"

文件名存储在

FILENAME="filename"

据此,类似的命令

sed -i "s/$X/$FILENAME/g" *.html

应该做的工作。它将替换所有使用字符串filename 找到的HTML 文件中出现的所有text2replace

你也可以看看

When do we need curly braces around shell variables When to wrap quotes around a shell variable

【讨论】:

【参考方案2】:

这可能对你有用(GNU 并行和 sed):

parallel --header : sed -i 's#x#filename#' file ::: file *.html ::: x pattern ::: filename name

【讨论】:

以上是关于使用 bash 编辑多个文件的主要内容,如果未能解决你的问题,请参考以下文章

续写vim编辑器的功能和bash的特性感悟

一个bash脚本,用于使用bash脚本连接字符串并在同一文件中编辑一行

网络运维学习笔记:vim编辑器及 bash特性

使用 Bash 编辑 YAML 文件

使用 bash 脚本编辑 .tf 变量文件

LINUX BASH 命令