텍스트 파일에서 값을 추출하여 새 파일 생성

텍스트 파일에서 값을 추출하여 새 파일 생성

서식이 지정되지 않은 텍스트 파일에서 특정 값을 추출하여 각 값을 한 줄에 포함하는 새 파일을 만들고 싶습니다. 예를 들어 이 파일에서...

Calculating outliers
Range of metric values: 0.016416 1.319020 
Found 8 outliers over 0.3
Generating EVs
Found spikes at  77 132 140 142 155 156 157 175
Script complete

"Found Peaks"와 "Script Completed" 사이의 모든 값을 추출하여 아래와 같은 파일을 만들고 싶습니다.

77
132 
140 
142 
155 
156 
157 
175

또한 추출된 값이 항상 같은 숫자는 아니라는 점에도 유의해야 합니다. 0개에서 20개 이상의 값이 있을 수 있습니다.

답변1

$ sed -n '/^Found spikes at  */s///p' file | tr ' ' '\n'
77
132
140
142
155
156
157
175

sed이는 문자열로 시작 Found spikes at하고 뒤에 특정 개수의 공백이 오는 줄을 찾는 데 사용됩니다 . 행을 찾으면 문자열(숫자 앞의 공백 포함)이 제거되고 나머지 비트가 표준 출력으로 인쇄됩니다. sed표준 출력은 tr공백을 대체하는 개행 문자로 읽혀집니다.

마지막으로 리디렉션을 사용하여 결과를 새 파일에 저장합니다.

$ sed -n '/^Found spikes at  */s///p' file | tr ' ' '\n' >newfile

수정 후ctac_의 댓글추가 단계가 필요하지 않습니다 tr.

sed -n '/^Found spikes at  */s///p; y/ /\n/' file >newfile

관련 정보