2014-12-22 2 views
0
awk '$3>$cap{print $0}' $f > $tmp 

그래서 $ f와 $ tmp는 내가 반복하는 파일입니다. 각 파일에서 열 3의 값이 각 파일마다 달라지는 cap보다 큰 경우 해당 행은 tmp (각 $ f 전용) 파일로 인쇄됩니다. 그것은 일부 라인에서는 올바르게 작동하지만 더 작은 값을 가진 라인들도 출력됩니다. 3 열의 값이 cap보다 큰 경우 tmp에서 인쇄가 제대로되지 않습니다.

awk '$3>var' var="$cap" "$f" > $tmp 
귀하의 변수가 그을음 따옴표 안에 확장하지 않습니다

'code'
당신은 print $0을 필요로하지 않는 사람이 어떻게 awk

awk -v var="$cap" '$3>var' "$f" > $tmp 

또는

를 사용하여 bash 변수를 읽을 수 있습니다 여기에이

+0

은 'cap' a bash 변수입니까? 그렇다면'awk -v cap = "$ cap" '$ 3> cap {print $ 0}'' – fredtantini

+0

오류를 사용하려고합니다. $ tmp는 앞에 "보다 큼 기호"가 있으면 출력 파일입니다. –

답변

2

나를 도울 수 , 그것의 기본 동작은 아무런 조치도 취하지 않습니다.
서식을 잃어 버리지 않도록 "$ cap"변수 이름을 항상 큰 따옴표로 묶으십시오.