sed를 사용하여 파일의 특정 줄을 바꿀 수 없습니다

sed를 사용하여 파일의 특정 줄을 바꿀 수 없습니다

내 폴더에는 약 100개의 스크립트가 있으며, 모두 내 변수 config_list에 대한 특정 값을 가지고 있습니다. 14번째 줄을 편집하고 싶어요

for i in 10-35-5 8-35-7
도착하다
for i in $config_list

여기서 config_list는 숫자 트리플 목록 형식의 문자열이며 echo $config_list다음과 같은 출력을 제공합니다.

18-32-28 20-32-26 25-32-21 27-32-19  
16-32-27 18-30-27 25-32-18 28-30-17  
16-30-27 16-32-25 18-32-23 18-34-21 19-31-23 20-30-23 25-32-16  

등, 현재 폴더에 따라.

따라서 특정 폴더를 config_list대상으로 하는 경우 0-20-0 3-15-2 5-10-5 6-8-6 7-6-7스크립트의 14행은 다음과 같아야 합니다(예상 출력).
for i in 0-20-0 3-15-2 5-10-5 6-8-6 7-6-7

각 목록은 각 폴더마다 고유하며 이러한 트리플이 1~8개 있을 수 있습니다. 따라서 기본적으로 다른 스크립트를 사용하여 해당 다른 폴더에 있는 각 개별 스크립트 파일에 대한 for 루프의 매개 변수를 변경하려고 합니다.

나는 사용하려고

sed -i "14s/.*/for i in $config_list/" $dest/script.sh
여기서 dest는 대상 폴더 접두사이며 올바르게 정의되어 있습니다.

전체 폴더 집합에서 스크립트를 실행하면 다음과 같은 오류가 발생하는 경우가 있습니다.
sed: -e expression #1, char 22: unterminated `s' command
오류가 발생하지 않는 경우도 있지만 대상 파일이 변경되지 않는 경우가 있습니다.

동일한 스크립트에서 동일한 파일의 다른 줄을 변경하기 위해 똑같은 구문을 사용했는데 모든 경우에 완벽하게 작동했지만 그렇지 않습니다.

나는 한 번 sed -i "2s/.*/#PBS -N li-cap-$num/" $dest/script.sh두 번째 줄을 다음
#PBS -N li-cap-50
에서 변경했습니다.
#PBS -N li-cap-$num

무슨 문제가 있는지 아시나요?

편집 1: 나는 다음을 시도했다:
sed -i "/for/c\for i in $config_list" $dest/script.sh

다음 오류가 발생합니다:
sed: -e expression #1, char 28: unknown command:-''

편집 2: $config_list의 정의는 다음과 같습니다.
config_list=$(ls -l | grep '^d' | awk '{print $9}')

관련 정보