아래와 같이 일치하는 모든 파일을 찾기 위해 디렉토리에서 재귀 grep을 수행했습니다.
grep -ER "match_string1|match_string2" /path/to/dir/
내가 얻는 결과는 다음과 같습니다.
/path/to/dir/timestamp.log:match_string1
/path/to/dir/timestamp.log:match_string2
/path/to/dir/timestamp.log:match_string2
여기서 match_string1은 모델#을 나타냅니다. 여기서 match_string2는 테스트 결과를 나타냅니다.
모델 번호와 테스트 결과가 특정 기준과 일치할 때 계산할 수 있도록 이 줄을 병합하고 싶습니다.
참고: match_string2와 match_string1 두 개를 같은 줄에 넣을 수 있습니다.
예상되는 출력 예:
/path/to/dir/timestamp.log:match_string1; /path/to/dir/timestamp.log:match_string2; /path/to/dir/timestamp.log:match_string2
당신의 도움을 주셔서 감사합니다
답변1
sed '/match_string1/{
:1
N
/\n.*match_string2/s/\n/; /
t1
P
D
}'
스크립트가 라인을 발견하면 match_string1
패턴에 다음 라인을 추가하고 추가된 라인이 있는지 확인합니다. match_string2
그렇다면 n
ewline 기호를 대체 ;
하고 확인할 다음 라인을 추가합니다. 그렇지 않은 경우 match_string2
(아직 교체가 발생하지 않은 경우) 스크립트는 첫 번째 줄을 인쇄하고 두 번째 줄부터 처리를 시작합니다.