파일에서 경과 시간을 출력해야 합니다. "과거"앞의 값이 필요합니다 2:10:42
.
문서 내용:
312.90user 15.57system 2:10:42elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (1major+152440minor)pagefaults 0swaps
답변1
Perl을 사용하는 것은 비교적 쉽습니다.
perl -n -E '/([0-9:]+)elapsed/ and say $1' «FILE»
"elapsed"(공백 없이)라는 단어 이전의 시간과 같은 것을 찾는다는 점에 유의하세요. 다른 파일에 적용할 경우 오탐(false positive)이 발생할 수 있습니다. 또한 첫 번째 줄뿐만 아니라 파일의 모든 줄을 확인하고 발견된 경과 시간을 인쇄합니다.
답변2
"(time)elapsed"가 포함된 줄에서 "(anything) (space) (time)elapsed(anything)"을 검색하고 모든 것을 "(time)"으로 바꾼 다음 결과 줄을 인쇄합니다.
sed -n '/[0-9:]*elapsed/ { s/.* \([0-9:]*\)elapsed.*/\1/;p }' input > output
답변3
이렇게 하세요:
데이터가 다음과 같은 파일에 있다고 가정합니다.문서다음을 수행할 수 있습니다.
$ head -1 file | awk '{ print $3 }' | sed 's/elapsed//'
다음을 반환합니다.2:10:42
그것을 파괴:
다음 명령을 사용하여 파일의 첫 번째 줄을 가져옵니다.
head -1 file
힘든 일은 다음 사람이 한다.앗:
awk '{ print $3 }'
세 번째 데이터 블록만 인쇄합니다 2:10:42elapsed
.
그런 다음 사용sed구성할 문자열 편집기:
sed 's/elapsed//'
원하는 위치로 출력을 리디렉션할 수 있습니다. 예를 들어 다음을 추가하면 됩니다.
> output.text
2:10:42
이름이 지정된 파일로 출력출력.txt
위의 내용은 모든 내용을 중단 (교체)합니다.출력.txt문서. 파일 끝에 데이터를 추가하려면 >>
대신 >
.