파일에서 읽을 때 파일의 모든 "x" 인스턴스(라인 1), 다음 라인(라인 2) 및 그 다음 라인(라인 3)을 grep하고 싶지만… 6, 7, 10, 11행. 이를 수행할 수 있는 방법이 있습니까?
답변1
이 답변에서는 입력 파일이 일반 텍스트라고 가정합니다. 또는 입력 파일이 실제로 XML이나 JSON 또는 이와 유사한 경우 해당 형식에 맞는 도구를 사용해야 합니다.
노력하다:
awk 'BEGIN{a[0];a[1];a[2];a[3];a[6];a[7];a[10];a[11]} /x/{n=NR} n && (NR-n) in a'
작동 방식:
BEGIN{a[0];a[1];a[2];a[3];a[6];a[7];a[10];a[11]}
a
이는 인쇄하려는 각 줄에 대한 연관 배열을 초기화합니다./x/{n=NR}
해당 줄에 있는 경우
x
변수를n
현재 줄 번호로 설정합니다.x
정규식으로 처리된다는 점에 유의하세요 .n && (NR-n) in a
n
할당되어 있고NR-n
인쇄하려는 줄 중 하나라면 해당 줄을 인쇄하세요 .