2013-05-30 3 views
0

내 파일의 줄을 바꾸려고합니다. 내가 사용했다줄을 bash 스크립트로 바꿉니다.

line=" abc" 
sed -i "3c ${line}" test.txt 

그것은 작동하지만 첫 번째 공간이 나타나지 않는다. 나는 TEST.TXT의 라인 3

abc 

보다는

abc 

통지 abc 전에 공간이되고 싶어요. 어떤 제안 주셔서 감사합니다!

답변

0

sed 대체 명령의 구문은 's/match/replacement/'입니다. 각각 정규 표현식 메타 시작을위한 문자와 줄의 끝이

line=" abc" 
sed -i "s/^abc$/$line/" test.txt 

문자 ^$ : ABC를 발견하고 그것을 대체하기 위해, 당신은 같은 것을 할 필요가있다. 따라서 ^abc$은 해당 패턴을 정확히 포함하는 행만 일치시킨 다음 abc으로 바꾸십시오.

+0

'abc'는 그가 추가하고있는 것이지 대체 할 수있는 것은 아닙니다. – Barmar

1
line="\ abc" 
sed -i "3c\ 
$line" test.txt 

공간을 이스케이프 처리하면 트리밍되지 않습니다.

관련 문제