我有一个podman-compose
文件:
version: "3.8"
services:
kiwix-serve:
image: docker.io/kiwix/kiwix-serve:3.3.0-1
volumes:
- kiwix_data:/data
- /home/meijin3/zim/gutenberg_en_all_2022-10.zim:/data/gutenberg_en_all_2022-10.zim
- /home/meijin3/zim/wikipedia_en_all_mini_2022-09.zim:/data/wikipedia_en_all_mini_2022-09.zim
ports:
- 8080:80
command:
/data/wikipedia_en_all_mini_2022-09.zim
/data/gutenberg_en_all_2022-10.zim
我正在尝试创建一个脚本来.zim
搜索/home/meijin3/zim/
. 它将替换我的撰写文件中包含对.zim
文件的引用的任何现有行。
#!/bin/bash
yaml=example.yaml
sed -i '/.zim/d' $yaml
for i in "$(find /home/meijin3/zim/*.zim -printf '%f\n')"; do \
line1='home/emilio/zim/'"$i"':/data/'"$i"
sed -i -e "\,kiwix_data,a "'\ \ \ \ \ \ - '"$line1" "$yaml"; done
batcat $yaml
出于某种我似乎无法理解的原因,我不断收到以下错误:
sed: couldn't open file ikipedia_en_all_mini_2022-09.zim:/data/gutenberg_en_all_2022-10.zim: No such file or directory
如果我在 中只有一个文件/home/meijin3/zim/
,我的脚本运行时没有任何问题(除了我还没有将这些行添加到命令部分这一事实)。
我没有使用正确的sed
命令语法吗?也许问题出在其他地方。如果您能提供帮助,我们将不胜感激!
我通过将
find
命令的输出分配给数组解决了我的问题,即我修改了我的
for
循环以迭代这个数组: