2014-11-06 2 views
0

내가 명령 줄에서 실행할 때 필요한 오/피를 얻을 수 있어요하지만 때 지금AWK 변수를 사용하여 검색하는 방법

NAME1 04-03-2014 
NAME2 04-04-2014 

을 다음과 같이 나는이 파일 TEST1를했습니다 그것을 변수로 사용하십시오. 내 AWK 버전은 cmd를 라인에서 3.1.5

작품입니다 : AWK TEST1 이 bash는/ksh 스크립트에서 작동하지 않습니다 '=/2014년 4월 3일/$ 2':

export m=04 d=03 y=2014 
awk -v m="$m" -v d="$d" -v y="$y" '$2 = /m-d-y/' test1 OR 
awk -v m="$m" -v d="$d" -v y="$y" '$2 = m-d-y' test1 ### This replaces the 2nd field as -2010 

I awk에서 printf 문에서 변수를 사용하여 숫자를 계산했지만 위의 예제는 어떻게 든 나에게는 효과가없는 것 같습니다. 그러나 해결 방법을 시도했다 즉, awk cmd를 파일에 에코 및 다음 원하는 파일을 제공하는 스크립트로 파일을 실행합니다. 그러나 나는이 일을 올바른 방법이라고 생각하지 않고 누군가가 할 수 있으면 감사하겠습니다. 나에게 더 똑똑한 방법을 줘.

+0

무엇을하려는 것입니까? 원하는 모든 작업을 수행하지 않는 스크립트를 게시 한 다음 원하는 작업을 알려주지 않고 수정 방법을 요청하면 우리를 도와 줄 수 없습니다. $ 2에 어떤 값을 할당하려고하거나 어떤 값이나 다른 것과 동등한 $ 2를 테스트하려고합니까? 일부 샘플 입력을 게시했습니다. 좋은 시작이지만 이제는 그 입력에 대해 원하는 출력을 게시하십시오. –

답변

1

짐작할 수 있겠지만 $2이 변수에서 생성 된 특정 문자열과 동일한 모든 줄을 인쇄하려고합니다. 그렇다면 :

awk -v m="$m" -v d="$d" -v y="$y" '$2 == m"-"d"-"y' file 
관련 문제