我有 2 个文件,一个包含文本文件列表,另一个包含我想要添加的内容。
我似乎无法在 Bash 脚本中使用该变量。
脚本如下:
for name in $(cat /home/stuff/list)
do
keysss=`cat /home/stuff/test`
sed -i "27i $keysss " $name
done
这样就会出错。我试过其他方法来打印单词,但我想将其内容打印到文件中
ps. 文件包含 CA 根证书
答案1
您不需要将文件读入变量并使用i
命令插入内容(在某些情况下这会失败,例如包含换行符/需要转义),而应该使用命令r
直接附加文本:
for name in $(cat /home/stuff/list); do
sed -i "27r /home/stuff/test" $name
done
为了避免反引号问题更好的做法是:
while read -r name; do
sed -i "27r /home/stuff/test" "$name"
done < /home/stuff/list
或者更简单地说:
xargs -rd '\n' -- sed -i "27r /home/stuff/test" < /home/stuff/list