디렉터리에서 100b보다 작은 모든 파일을 찾아 /etc
결과를 페이지로 나누고 결과를 파일에 저장하는 스크립트를 Bash에서 작성하고 싶습니다. 나는 다음 명령을 사용해 보았습니다.
find /etc -size -100c | sort | > results
하지만 페이지에서 결과를 분할하는 방법을 모르겠습니다.
답변1
find /etc -size -100c | sort |
awk '{ print; } ! (NR % 60) { printf ("\n\n\n\n\n\n"); }' > result
답변2
왜 "페이지"를 원하는지 이해가 되지 않습니다. 파일을 읽는 데 사용할 수 있는 대부분의 프로그램은 어쨌든( less
또는 다른 뷰어와 편집기) 이러한 종류의 작업을 처리합니다 . 하지만 원한다면 다음과 같이 하는 것이 쉽습니다.
find /etc -size -100c | sort |
perl -ne '$. % 60 == 0 ? print "$_\n" : print' > results
$.
현재 줄 번호를 보유하는 특수 변수 입니다 . 따라서 위 코드는 현재 줄을 인쇄하고 그 뒤에 개행 문자( print "$_\n")
현재 줄 번호( $.
) 모듈로 60이 0인 경우, 그렇지 않은 경우 현재 줄만 인쇄합니다. 결과는 매 줄마다 빈 줄을 추가하는 것입니다. 60줄.
또는 조금 덜 장황하게 말하면 다음과 같습니다.
find /etc -size -100c | sort | perl -pe 'print "\n" if $. % 60 == 0' > results