2014-12-05 2 views
2

을 둘러싼 따옴표를 제거나는 라인과 유사한 찾고있는 파일이 수

"somestring": "20.000", 

내가 주위 20.000 따옴표를 제거 할를.

다른 사용 사례는 숫자를 인식하는

"somestring": 20, 
"somestring": "blahhhah 3", 
"somestring": "", 

명백한 정규식을 [0-9]+와 소수에 대한 [0-9].[0-9]+되어 제공해야하는

"somestring": "20", 
"somestring": "blahhhah 3", 
"somestring": "", 

있습니다. sed 명령으로 역 참조 할 수 있기 때문에 이것이 가능하다고 들었지만 sed 명령을 사용하는 방법을 모르겠습니다. 누군가이 일을하기 위해 리눅스 명령을 내게 제공 할 수 있습니까?

+3

을 _... 그러나 나는 방법을 모른다 sed 명령을 사용하십시오. [Here you go.] (http://www.grymoire.com/Unix/Sed.html) –

답변

2
$ sed -r '[email protected]"([0-9]+(\.[0-9]+)?)",\s*[email protected]\1,@' file 
"somestring": 20.000, 
"somestring": 20, 
"somestring": "blahhhah 3", 
"somestring": "", 
+0

이 "somestring"은 어떨까요 : "20.000",? –

+0

그에 따라 편집 된 POST –

1

당신은 사용할 수 있습니다

sed -i.bak -r 's/"([[:digit:]]+(\.[[:digit:]]+){0,1})"/\1/' file 
"somestring": 20, 
"somestring": "blahhhah 3", 
"somestring": "", 
"somestring": 20.000, 

를 OSX 사용에 :

sed -E 's/"([[:digit:]]+(\.[[:digit:]]+){0,1})"/\1/' 
0

를 기본 모드에서 :

sed 's/^\("[^"]*": \)"\([0-9][0-9]*\(\.[0-9]*\)\?\)"/\1\2/' file.txt 
관련 문제