문서의 4줄마다 새 줄을 추가하고 싶습니다.
예를 들어:
abc
def
ghi
jkl
mno
pqr
stu
vw
xyz
다음과 같아야 합니다:
abc
def
ghi
jkl
mno
pqr
stu
vw
xyz
답변1
sed(GNU)
sed '0~4G'
man sed는 ~를 다음과 같이 해석합니다.
first ~ step은
첫 번째 줄부터 시작하는 모든 첫 번째 단계와 일치합니다. 예를 들어, "sed -n 1~2p"는 입력 스트림의 모든 홀수 행을 인쇄하고 주소 2~5는 두 번째 행부터 시작하여 매 5번째 행과 일치합니다. 첫 번째 값은 0일 수 있습니다. 이 경우 sed는 step과 동일한 것처럼 작동합니다. (이것은 확장입니다.)
sed (기타)
짧음(100줄은 보기 흉함):
sed 'n;n;n;G'
또는, 새 줄 수를 계산합니다.
sed -e 'p;s/.*//;H;x;/\n\{4\}/{g;p};x;d'
또는 더 많은 이식성을 위해 다음을 작성하십시오(일부 sed 버전에 대한 주석 제거).
sed -e ' # Start a sed script.
p # Whatever happens later, print the line.
s/.*// # Clean the pattern space.
H # Add **one** newline to hold space.
x # Get the hold space to examine it, now is empty.
/\n\{4\}/{ # Test if there are 4 new lines counted.
g # Erase the newline count.
p # Print an additional new line.
} # End the test.
x # match the `x` done above.
d # don't print anything else. Re-start.
' # End sed script.
앗
아마도:
awk '1 ; NR % 4 == 0 {printf"\n"} '
답변2
다음 명령을 시도해 보세요.
awk ' {print;} NR % 4 == 0 { print ""; }'
답변3
sed -e 'n;n;n;G'
perl -pe '$. % 4 or s/$/\n/'
perl -lpe '$\ = $. % 4 ? "\n" : "\n\n"'
출력 레코드 구분 기호를 4줄마다 변경합니다.