PowerShell로 꼬리를 잡는 방법

파일의 마지막 또는 처음 몇 줄을 인쇄하는 것은 일상적인 작업에서 일반적인 작업입니다.
Linux에서 대부분의 사람들은 두 번 생각하지 않고 tail를 사용하고 이에 상응하는 head를 사용하여 이를 달성합니다.

맨 페이지1는 꼬리를 이렇게 간단하게 설명합니다.

Print the last 10 lines of each FILE to standard output.
With more than one FILE, precede each with a header giving the file name.



몇 가지 일반적인 테일 작업과 이를 PowerShell로 재현하는 방법을 살펴보겠습니다.

꼬리 -f



tail -f /var/log/important.log

이것은 꼬리에 대한 나의 개인적인 최고 사용 사례입니다. -f 스위치는 tail이 주어진 파일을 따르도록 지시합니다.
파일에 기록된 대로 데이터를 출력합니다.

PowerShell에서는 Get-Content를 사용하고 -Wait 스위치로 파일을 따르도록 지시합니다.

Get-Content "c:\important.log" -Wait


중요한!
tail 에는 한 가지 중요한 차이점이 있습니다.
추적 중인 파일이 삭제되면 프로세스는 0이 아닌 코드와 함께 반환됩니다.


종료는 tailGet-Content 모두 동일하며 Ctrl+C를 누르십시오.

꼬리 -n


-n 매개변수는 tail이 주어진 파일에서 마지막 X줄을 반환하도록 지시합니다.

중요한 로그 파일의 마지막 20줄을 원한다고 가정해 보겠습니다.

tail -n 20 /var/log/important.log

PowerShell은 -Tail 매개변수를 사용하여 이 동작을 복제할 수 있습니다.

Get-Content "c:\important.log" -Tail 20

머리 -n



헤드는 같은 방식으로 작동하지만 주어진 파일에서 첫 번째 X 줄을 가져옵니다.

head -n 20 /var/log/important.log

PowerShell은 -Head 매개변수를 사용하여 이 동작을 복제할 수 있습니다.

Get-Content "c:\important.log" -Head 20

여러 파일


tail -f 예제로 돌아가서 한 번에 여러 파일을 작업하고 싶을 수 있습니다.

꼬리를 사용하면 다음과 같이 명령 끝에 간단히 추가할 수 있습니다.

tail -f /var/log/important.log /var/log/another.log

당연히 Get-Content 비슷한 방식으로 작동합니다.

Get-Content "c:\important.log","c:\another.log" -Wait


중요한!
  • tail와 달리 다른 파일은 쉼표로 구분해야 합니다
  • .
  • PowerShell은 출력된 줄이 어떤 파일에 속하는지 표시하지 않습니다.



  • 바로가기



    매번 쓰기Get-Content가 다소 길거나 번거롭게 보일 수 있지만 고맙게도 그럴 필요는 없습니다.

    일부 단축키를 사용하면 키 입력을 크게 줄일 수 있습니다.
  • 별칭Get-Content을 사용하여 줄입니다gc.
  • 내부에 공백이 없는 한 경로 주변을 생략""합니다
  • .
  • 명령은 항상 대소문자를 구분하지 않으며 이는 개인 취향에 더 가깝습니다.

  • 이 바로 가기를 사용하면 명령이 훨씬 더 짧아집니다.

    Get-Content "c:\important.log" -Wait
    gc c:\important.log -Wait
    
    Get-Content "c:\important.log" -Tail 20
    gc c:\important.log -Tail 20
    
    Get-Content "c:\important.log" -Head 20
    gc c:\important.log -Head 20
    
    Get-Content "c:\important.log","c:\another.log" -Wait
    gc c:\important.log,c:\another.log -Wait
    
    

    더 나아가



    여기서는 PowerShell을 시작하기 위한 기본 테일 사용법에 대한 예를 다룹니다.

    또한 경로 내에서 다양한 wildcards을 사용하여 여러 파일을 꼬리로 필터링할 수 있습니다.

    Get-Content "c:\logs\*" -Wait
    

    거기에서 진행하여 2019년의 일부 관련 없는 IIS 로그와 몇 가지 오래된 로그 파일을 제외할 수 있습니다.

    Get-Content "c:\logs\*" -Exclude "iis-*.log","*2019*" -Wait
    

    더 자세히 알아볼 수 있는 훌륭한 리소스는 Microsoft의 official documentation입니다.

    Twitter에서 PowerShell 문제에 대해 언제든지 물어보세요!



    http://manpages.ubuntu.com/manpages/focal/en/man1/tail.1.html  

    좋은 웹페이지 즐겨찾기