Как я вставляю содержание файла в каждый список файлов?

У меня есть 2 файла, один со списком текстовых файлов и другого с содержанием, которое я хочу добавить.

Я, может казаться, не могу использовать переменную в сценарии удара.

сценарий похож на это:

for name in $(cat /home/stuff/list)
do 
  keysss=`cat /home/stuff/test`
  sed -i "27i $keysss " $name
done

Таким образом, это дает ошибку. Другими путями я попробовал, печатают слово, но я хочу распечатать содержание его в файл

PS файлы содержит корневые сертификаты CA

0
задан 16 November 2017 в 04:40

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
1
ответ дан 3 November 2019 в 01:27

Другие вопросы по тегам:

Похожие вопросы: