2013-03-20 2 views
0

IF 문을 사용하는 코드를 작성하려고합니다. 여기 awk 문을 사용하여 얻은 2 문자열을 비교하려고합니다. 가능하면 도와주세요.UNIX : 값 대신 IF 조건에 값 전달

if [ "awk '/$search/ {print $3}' rpt1.txt" -eq "awk '/$search/ {print $3}' rpt2.txt" ] 

답변

0

물론, $() 또는``.

if [ $(awk '/$search/ {print $3}' rpt1.txt) -eq $(awk '/$search/ {print $3}' rpt2.txt) ] 

당신은 아마도하지만 대신 -eq= 원하는 문자열 비교보다는 숫자를합니다.

search_report() { 
    awk "/$1/ { print \$3 }" $2 
} 

if [ $(search_report $search rpt1.txt) -eq $(search_report $search rpt2.txt) ] 
... 
+0

감사합니다. 나는 당신의 정보로 진행할 것입니다. – greatvedas

0

당신은이 같은 변수에 표준 출력 캡처 할 수 있습니다 : 당신이 너무 함수 한 경우

더 읽을 수 있음

variable=$(command) 

rpt1=$(awk '/$search/ {print $3}' rpt1.txt) 
rpt2=$(awk '/$search/ {print $3}' rpt2.txt) 

if [ "${rpt1}" == "${rpt2}" ]; then 
    echo "match"; 
fi 

운영자 시도를 -eq 정수로만 작동하므로 그 대신 ==을 사용했습니다. 표준 출력 http://www.cyberciti.biz/faq/unix-linux-bsd-appleosx-bash-assign-variable-command-output/

을 캡처에 대한

상세 정보이 bash는 연산자의 훌륭한 요약을 많이 다니엘 http://tldp.org/LDP/abs/html/comparison-ops.html