PowerShell에서 Awk 명령 수행
awk
는 데이터 조작 및 보고서 생성을 위한 스크립팅 언어입니다. awk
는 컴파일 없이 변수, 텍스트 함수, 숫자 함수 및 논리 연산자를 지원하는 명령줄 프로그래밍 언어입니다.
불행히도 awk
는 Windows 운영 체제를 사용하기 때문에 PowerShell에 완전히 통합되지 않았습니다. 이 기사에서는 PowerShell을 사용하여 awk
명령과 유사한 명령 및 기능을 사용하는 방법에 대해 설명합니다.
PowerShell에서 awk
명령 수행
awk
유틸리티를 사용하면 프로그래머는 텍스트 패턴을 지정하는 명령문의 형태로 간단하지만 강력한 프로그램을 만들 수 있습니다. 이는 일반적으로 Linux 명령이나 Linux에 익숙하지 않은 사용자에게는 생소할 수 있습니다. 이러한 텍스트 패턴은 각 행에서 검색되고 일치하는 항목이 발견되면 조치가 취해집니다.
‘awk’는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 탐색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
다음 코드 조각은 awk
를 사용하는 명령의 예입니다.
awk '/"Box11"/ { print $0 }' test.txt|awk '{ SUM += $4} END { print SUM} '
awk
명령과 같은 유사한 작업을 수행하기 위해 Get-Content
명령을 사용하여 파일 내용을 가져오고 Windows PowerShell에서 몇 가지 문자열 작업을 수행합니다. 위의 예를 들면 PowerShell에서 다음과 같이 보일 것입니다.
예제 코드:
Get-Content c:\temp\test.txt |
Where-Object{$_ -match '"Box11"'} |
ForEach-Object{($_ -split "\s+")[3]} |
Measure-Object -Sum |
Select-Object -ExpandProperty Sum
Get-Content
명령은 텍스트 파일의 내용을 가져옵니다.Where-Object
명령은Box11
문자열이 있는 행을 필터링합니다.- 그런 다음, 일단 필터링되면 스크립트는 네 번째 요소에서 각 줄 문자열을 분할하도록 반복됩니다. PowerShell은 인덱스
0
에서 시작한다는 것을 기억하십시오. 따라서awk
명령과 달리4
대신3
인덱스를 사용합니다. Measure-Object
는 속성에 대한 계산을 수행하며 이 경우Sum
입니다.- 마지막으로
Select-Object
는Sum
확장 속성을 출력합니다.
awk
명령의 PowerShell 버전이 약간 더 깁니다. 좋은 점은 PowerShell에서 별칭과 몇 가지 PowerShell 연산자를 사용하여 바로 가기를 만들 수 있다는 점입니다.
예제 코드:
gc c:\temp\test.txt | ?{$_ -match '"Box11"'} | %{(-split $_)[3]} |
Measure -Sum | Select -Exp Sum
또는 WSL(Linux용 Windows 하위 시스템)이 활성화된 경우 awk
명령을 그대로 실행할 수 있습니다. WSL(Linux용 Windows 하위 시스템)이라고 하는 Windows 운영 체제의 기능을 사용하면 Linux 명령줄 도구 및 GUI 응용 프로그램이 포함된 Linux 파일 시스템을 Windows에서 직접 실행할 수 있습니다.
따라서 wsl
명령을 호출하고 awk
명령을 기본적으로 수행해야 합니다.
예제 코드:
wsl -e awk '/"Box11"/{sum += $4} END{print sum}' test.txt
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn