2014-11-19 2 views
1

awk에서 이와 같은 작업을 시도 했습니까?변수를 식의 피연산자로 사용 - awk

limit=10000 
ls -ltr | awk '$5 >= $limit { print $5 }' 

그러나 작동하지 않는 것 같습니다. 모든 크기가 제한보다 작게 인쇄됩니다.
미리 감사드립니다.

+0

가능한 중복 [awk 스크립트에서 쉘 변수를 사용하는 방법 (http://stackoverflow.com/questions/19075671/how-to-use-shell-variables-in-awk-script) – fedorqui

답변

0

봅니다 -v 옵션을 사용하여 AWK의 PARAMATERS에 변수를 설정합니다 :

limit=10000 
ls -ltr | awk -v mylimit=$limit '$5 >= mylimit {print $5}' 
+0

당신이해야 항상 인용 변수이므로'-v mylimit = "$ limit"'(이 단순한 경우에는 효과가 없지만 언제나 그것을 인용하는 것이 더 좋다) – Jotne

+0

Jotne, 동의한다. 나의 유일한 변명은 그 아이디어를 보여주기위한 코드예요. –

0
아래처럼 awk 명령을 변경

,

ls -ltr | awk -v limit=10000 '$5 >= limit { print $5 }' 

당신은 -v 스위치를 사용하여 AWK 자체에 변수를 선언 할 수있다. 의

+0

감사합니다 Avinash! 그러나 나는 Troublemaker-DV 대답을 받아 들일 것입니다. 제발 신경 쓰지 마. 건배 :) – Malick

+0

당신의 소원,하지만 왜 두 줄 대신에 하나 가야합니까? –

+0

아, 그걸 고려하지 않았어! 나는 다음 번에 염두에 둘 것이다! – Malick

관련 문제