У меня есть 2 файла, один со списком текстовых файлов и другого с содержанием, которое я хочу добавить.
Я, может казаться, не могу использовать переменную в сценарии удара.
сценарий похож на это:
for name in $(cat /home/stuff/list)
do
keysss=`cat /home/stuff/test`
sed -i "27i $keysss " $name
done
Таким образом, это дает ошибку. Другими путями я попробовал, печатают слово, но я хочу распечатать содержание его в файл
PS файлы содержит корневые сертификаты CA
Вместо того, чтобы читать файл в переменную и вставить то содержание с 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