컴퓨터, 풀어그림

PowerShell에서 입력 재지정

우균 2021. 10. 4. 09:55

Windows가 PowerShell을 밀고 있지만, 사실 난 cmd를 더 자주 사용한다. PowerShell에는 여러 좋은 기능이 있지만, cmd를 사용하는 이유는 단 하나, "명령어가 간단"하기 때문이다. 사실 PowerShell의 명령어는 너무 길고 복잡하다.

미운 사람 고운데 없다고, 흔한 입력 재지정(input redirection)도 PowerShell에서는 제대로 되지 않는다. 예컨대 다음과 같이 인사하는 프로그램이 있을 때, 입력 재지정으로 수행되지는 않는다.

PowerShell에서 입력 재지정이 실패하는 예

대신 PowerShell에서는 파이프로 입력 재지정과 같은 효과를 얻을 수 있다.

type과 파이프를 이용한 입력 재지정

type 대신 Get-Content 명령어를 사용해도 같은 효과이다.

Get-Content와 파이프를 이용한 입력 재지정

출력을 보면 줄바꿈 문자(\n) 처리가 이상한 것을 볼 수 있는데, 이는 Windows(DOS) 형식인 bingo.txt와 사용한 컴파일러 gcc의 궁합이 맞지 않아 생긴 문제라고 생각된다. Windows에서는 줄바꿈문자를 행복귀문자(\r)와 줄넘김문자(\n) 두 개로 저장하는데 반해 Unix에서는 줄넘김문자 하나로 저장한다.