N 줄 다음 줄을 삭제하기 위해 awk를 사용하려고 하는데 올바르게 수행할 수 없는 것 같습니다. 파일 형식은 이렇습니다
YYYYYY
XXXXXX
XXXXXX
YYYYYY
XXXXXX
XXXXXX
실제 예는
office3
3
1
office3
6
1
office3
6
3
office3
1
1
행 YY 또는 "사무실" 행을 삭제하는 방법. 내용에 관계없이 두 행마다 삭제해야 합니다.
답변1
GNU sed가 있는 경우 주소 표기법을 사용할 수 있습니다 n~m
( n
건너뛰기 ).m
sed '1~3d' file
첫 번째 줄부터 세 줄씩 삭제합니다.
답변2
모듈로 행만 선택해 N
보세요.awk
awk '!(NR%2)' file
또는
awk 'NR%3==0' file
이는 NR
지금까지 처리된 행 수를 나타냅니다.
특정 경우(모든 줄 제거 Y
):
$ echo 'YYYYYY
XXXXXX
XXXXXX
YYYYYY
XXXXXX
XXXXXX' | awk '!(NR%3==1)'
XXXXXX
XXXXXX
XXXXXX
XXXXXX