2009-10-31 4 views

답변

3

'.' 모든 문자와 일치하는 정규 표현식입니다. 원한다면 's/\.//'

7

도트는 "모든 문자와 일치"를 의미하는 특수 문자입니다.

$ sed s/\\.// temp 
225 

당신은 sed s/\.// temp을 할 수 있다고 생각하지만, 쉘은 그 하나의 백 슬래시를 이스케이프와 sed하는 s/.//를 전달합니다 .. 그래서, 당신은 어떤 제대로 것, 나오지도 할 수있는 리터럴 백 슬래시를 전달하는 두 개의 백 슬래시를 둘 필요가 \.을 문자로 처리하십시오. 또는, 리터럴 백 슬래시를 유지하기 위해 명령을 인용 수 :

$ sed "s/\.//" temp 
225 

당신이 s/.//이 점은 파일의 첫 번째 문자와 일치하고 제거하는 것입니다 할 때 2.5을받을 이유.

+0

하나를 사용할 수 있습니다! – Buggabill

0

'.' 특별한 것은 : 그것은 모든 단일 문자를 일치시킵니다. 그래서 귀하의 경우, sed 표현식이 줄의 첫 번째 문자와 일치합니다. 이런 식으로 탈출 시도 :

의 /\.//

+0

여기에서 벗어난 것처럼 보이지 않습니다. – Telemachus

+0

Heh. 편집 위젯이 백 슬래시를 먹는 것처럼 보입니다. 나는 그것이 보이게하기 위해 도피를 벗어날 필요가 있었다 :) – Ned

1

.는 모든 문자에 대한 와일드 카드 문자, 그래서 첫 번째 문자는 아무것도로 대체 한 후 완료 나오지.

당신은 sed 's/\.//' Temp을 원합니다. 백 슬래시는 특수 문자를 이스케이프 처리하여 액면가를 되 찾는 데 사용됩니다. 잘 언급 선생님 -

0

당신은 또한 AWK

awk '{sub(".","")}1' temp