2017-03-16 1 views
0

나는 이것이 곧은 것임을 알아야한다. 그러나 나는 미안하다.sed match first word 전체 줄 바꾸기

두 개의 파일에 동일한 매개 변수가 있지만 값이 다릅니다. 한 번에 하나의 파일 줄을 읽고 매개 변수 이름을 얻으려는 시도이며 두 번째 파일에서 일치시키고 전체 줄을 파일 1의 줄과 바꾸기 위해 사용합니다.

예 : rw_2.core.fvbCore.Param.isEnable 1 (FVB_Params) 이 rw_2.core.fvbCore.Param.isEnable 사실 (FVB_Boolean을)이된다

선은 항상 같은 길이 아니지만 나는 항상 전체 라인을 교체하려면 .

내가 가지고있는 코드는 다음과 같지만 대체 코드를 만들지 않아서 왜 작동하지 않을 수 있습니까?

while read line; do   
    ParamName=`awk '{print $1}'` 
    sed -i 's/$ParamName.*/$line/g' FVB_Params.txt 
done < FVB_Boolean.txt 
+0

'. ^'?? 그게 어떻게 의미가 있니? 줄을 시작하기 전에 인물이 있다고하던가요? – hek2mgl

+0

예, 미안하지만 오타였습니다. 이것을 편집하는 방법을 알아낼 수 없습니다. $ ParamName 앞에있는 문자를 무시하십시오. – RobynP

+0

수정 됨 – RobynP

답변

0

변수를 해당 값으로 바꾸려면 sed 명령을 큰 따옴표로 묶어서 지정해야합니다. 당신은 작은 따옴표를 가지고 있기 때문에, sed는 쉘이 $ line 변수에 가지고있는 것이 아닌, 실제로는 '$ line'문자열로 바꾸기 위해 달러 기호가있는 문자열을 찾고 있습니다.

간단히 말해 sed는 원하는 값을 보지 못합니다. 큰 따옴표로 전환하십시오.