【发布时间】:2020-04-30 05:47:12
【问题描述】:
我尝试编写一个 bash 脚本来替换以下内容:
{"Ausstattung":"
"},{"Ausstattung":"
"}
在子文件夹的所有 CSV 文件中。
这是我目前使用的:
function suche_und_ersetze() { // search and replace
LC_ALL=C find ./subfolder -type f ! -name ".DS_Store" -exec sed -i "" "s/${OLD}/${NEW}/g" {} \;
}
OLD='{\"Ausstattung\":\"'
NEW="#"
suche_und_ersetze
OLD='\"},{\"Ausstattung\":\"'
NEW=" #"
suche_und_ersetze
OLD='\"}'
NEW=""
suche_und_ersetze
不知怎的,我无法让它工作。该脚本正在替换没有" 或} 或, 的文本,但不是上面列出的单词。
【问题讨论】:
-
您需要将 OLD 和 NEW 变量作为参数传递给您的函数。然后可以使用
$1和$2调用它们。 Bash 从上到下,你的suche_und_ersetze函数不知道${OLD}和${NEW}是什么 -
谢谢@SimonC-ReinstateMonica。它正在与其他文本一起使用,f.ex。只有Ausstattung。但不是括号...
-
我做了一些语言润色和一点英文翻译以提高可读性。