을 사용하여 특정 위치의 문자를 변경하는 방법 :내가 프로그래밍 다른 매개 변수를 설정 변경하고자하는 파일이 쉘 변수
$ cat ex.dat
line 1
here's another line
this is the number I want to change --> 1e-11
more lines
내가 값 5.
, 10
및 20.
에 1e-11
을 변경하고자합니다. 다음과 같은 내용 :
mkd()
{
mkdir $1;
cd $1
}
for j in 1 2 3 4 5 ; do
mkd WS$j
cp ../ex.dat .
sed -ie '3s/1e-11/${j}./' ex.dat
cd ..
done
내 접근 방식이 작동하지 않습니다. 1e-11
을 $j
의 값으로 대체하려면 어떻게해야합니까? 중괄호는 점 전에 잘 작동한다 않고
$ cat WS3/ex.dat
line 1
here's another line
this is the number I want to change --> ${j}.
more lines
* "작동하지 않음"* 무엇을 의미합니까? 특정 행동을 설명하는 것은 다른 사람들에게 도움이된다. –
_double-quote_ 쉘에 의해'$ {j}'가 확장되도록'sed' 스크립트를 이중 인용한다. 또한'-ie'는 접미어'e'가있는 백업 파일을 생성합니다. 아마도'-i -e' 또는 간단히'-i'를 사용하려고했을 것입니다. 또한 원하지 않는 수정을 막기 위해 일반적으로 모든 쉘 변수 참조를 이중 인용 부호로 묶으십시오. – mklement0