내 .log 파일에는 다음과 같은 유형의 데이터가 있습니다.
Cell[BoxData["0.8693473380926441`"]
Cell[BoxData["100.40266203596555`"]
Cell[BoxData["23.338724857049048`"]
Cell[BoxData["0.25720321805387686`"]
Cell[BoxData["66.85236878385265`"]
예를 들어 숫자를 찾고 싶습니다.
0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265
시도해 보았지만 grep -Po '\[.*?]'
브래킷 하나만 제거되었습니다. 어떤 도움이라도 대단히 감사하겠습니다.
답변1
awk
더 나은 점은 다음과 같습니다.
awk -F '["`]' '{print $2}' file
필드 구분 기호를 "
물결표 또는 물결표로 설정한 다음 두 번째 열/필드를 인쇄합니다.
산출:
0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265
답변2
grep을 통해 자신이 정말로 원하는 것이 무엇인지 알아보세요. 당신이 원하는 것은 숫자뿐입니다. 숫자, 마침표 및 숫자가 필요합니다.
egrep '[0-9]+\.[0-9]+' -o foo.txt
-o
"전체 줄이 아닌 일치하는 부분만 인쇄하세요" 라고 되어 있습니다 .
답변3
아래 언급된 명령을 사용해 보았는데 잘 작동했습니다.
sed 's/.*\["//g' filename| sed 's/`"\]//g'
산출
0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265
답변4
예시가 아닌 주제에 관한 질문에 누구나 답할 기회가 있습니다. "[nnn]"의 숫자를 가져오기 위해 awk를 사용하려고 하는데 awk -F'\[' '{print $2}' | awk -F'\]' '{print $1}’
작동하는 동안 정말 보기 흉해 보입니다. 시도해 보았 -F’[[]]’
으나 -F’[\[\]]’
그 중 아무 것도 작동하지 않았습니다.