내가 X 모든 공간, 명령 작품, 명령 존재 교체 나오지도 사용하지만sed를 사용하여 공백을 (공백)으로 바꾸는 방법?
sed 's/ /X/g' filelist.tmp
을, 나는 \ 공간과 공간의 모든 항목을 대체하기 위해 동일을 할 때, 코드의 존재 :
sed 's/ /\ /g' filelist.tmp
작동하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 필자는 쉘 스크립팅을 처음 접했습니다.
내가 X 모든 공간, 명령 작품, 명령 존재 교체 나오지도 사용하지만sed를 사용하여 공백을 (공백)으로 바꾸는 방법?
sed 's/ /X/g' filelist.tmp
을, 나는 \ 공간과 공간의 모든 항목을 대체하기 위해 동일을 할 때, 코드의 존재 :
sed 's/ /\ /g' filelist.tmp
작동하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 필자는 쉘 스크립팅을 처음 접했습니다.
다른 \
즉 당신이 \
리터럴을 만들 필요가 추가
sed 's/ /\\ /g'
단 하나의 \
공간 전에 \
다음과 같은 공간을 탈출한다와; 공간은 이스케이프가 필요한 대체 문자가 아니기 때문에 그대로 사용합니다.
예 :
% sed 's/ /\\ /g' <<<'foo bar spam'
foo\ \ bar\ \ spam
당신은 "\"-r 인수를 사용해야하며 탈출의 순서로
sed -r "s/\s/\\\s/g" filelist.tmp
당신은 실수를 가지고 구문을 수정해야합니다 또한.
시도해보십시오. 변경 사항이 발생하지 않았습니다. 내 코드는'sed 's// \\/g "filelist.tmp'이다. 그것은 작동하지 않았다! –
@SomenathSinha 아니요, 사용했던 것처럼 작은 따옴표를 사용하십시오. 그렇지 않으면 쉘 이탈을 거치게됩니다. Do :'sed 's// \\/g'' – heemayl
그게 효과가있다! 왜 이중 따옴표로 작업하지 않았습니까? –