2010-07-27 5 views
0

sed를 사용하여 파일을 수정하려고하는데 잘못된 작업을하는 데 문제가 있습니다. 내가 sed가 행동하지 않는 이유에 대한 어떤 조언도 기대할 수있을 것이다.SED로 바꾸고 내용을 추가하려고하면 작동하지 않습니다.

내 파일은 일련의 줄로 구성되어 있으며 각 줄에는 단일 값이 들어 있습니다. 값의 내용은 바꾸기와 관련이 없으며 항상 영숫자이고 패턴을 따릅니다. CSV 파일을 만들기 위해이 값 앞에 다른 데이터를 추가하고 추가하고 싶습니다. 훌륭하게

를 붙일 수 나오지도 작품 :

앞에 추가 (작품)

sed 's/\(.*\)/NULL;0;400;6;2010-07-27;\1/' selection.csv

결과 :

나는 그것을 것이라고 기대 그대로입니다
NULL;0;400;6;2010-07-27;1326GP11SCH 
NULL;0;400;6;2010-07-27;2312BB30DUM 

. 추가 할 때

추가] 그러나

을 (실패), 상황이 추한 :

;NULL;NULL;1 
2312BB30DUM ;NULL;NULL;1 

받는--대체 할 값이 사라집니다 :

sed 's/\(.*\)/\1 ;NULL;NULL;1/' selection.csv

는 결과 마지막 줄을 제외하고는 모두 매우 낙담합니다.

내가 여기서 잘못하고있는 것이 분명해야하지만 분명히 알 수는 없습니다.

: (주이 SO 여부를 확인하거나하지 SU 재료는 ... 당신이 할 수있는 경우, 슈퍼 유저로 이동 자유롭게하고 이상이있을 것으로 판단)

답변

2

가 먼저 파일에 DOS2UNIX을 그런 다음 sed를 사용하십시오.

$ dos2unix file 
$ sed 's/$/;NULL;NULL;1/' file 
+0

여러분, 안녕하세요. 많은 감사합니다! 대답은 받아 들여지고 upvoted. – kander

관련 문제