2013-07-29 2 views
0

Windows의 배치 파일에서 간단한 gawk 명령을 사용하려고합니다. gawk.exe는 cygwin에서 액세스됩니다.배치 창에서 gawk 사용

gawk '{if ($1 GTR 1197) {print ($0) } else {} }' %input% > %output% 

내가하고 싶은 것은 다음은 다음과 같습니다 : 입력 파일의 첫 번째 열은 1197 값 thatn 더 큰 경우, 모든 행이 인쇄 이것은 명령입니다. 입력 파일의 형식은 다음과 같습니다.

16.0 23 40 
17.0 4 -40 
17.0 23 -4 
18.0 4  8 

알 수없는 이유로 인해 출력이 입력과 동일하므로 if 문을 인식 할 수 없습니다. gawk위한

+0

'GTR' 그게 뭐야? gawk는'<='등이 아닌 비교를 지원합니까? 행운을 빕니다. – shellter

+0

'>'기호가 인식되지 않아서, 내가 GTR을 시도한 이유입니다 (일부 웹에서는 그것에 대해 이야기합니다). – cuartango

답변

1

코드는 :

gawk "$1 > 1197" "%input%" > "%output%" 

예 :

 
>type file 
16.0 23  40 
17.0 4  -40 
17.0 23  -4 
18.0 4  8 
2000 6  9 
1197 2  1 
>gawk "$1 > 1197" file 
2000 6  9 

gawk for Windows위한 인용. Cygwin에서는 작은 따옴표 인 gawk '$1 > 1197'을 사용해야합니다.

+0

나는 당신의 충고를 시도했지만 큰 명령을 받아들이지 않습니다. 동등한 명령에서만 작동합니다. GTR도 시도했지만 아직 작동하지 않습니다. 일부 사람들은 큰 명령에 문제가 있다는 것을 일부 웹에서 읽었습니다. 무엇이 잘못 될 수 있는지 알고 있습니까? – cuartango

+1

아니요, 명령이 여기서 올바르게 작동합니다. 나는 awk에서'>'와 관련된 이슈에 관해서는 여기서 들어 본 적이 없다. 나는 gawk를 Windows 용으로 사용한다. – Endoro

0

마침내 문제점을 발견했습니다. 특수 문자 때문이었습니다. 답변에 대한

gawk ' $1 ^> 1197 { print } ' %input% > %output% 

감사합니다 : 큰 명령 앞에 (AN 풍경 문자로, 추가 정보를 here) 기호^작동을 소개합니다. 이것이 동일한 문제를 가진 다른 사람들을 도울 수 있기를 바랍니다.