2014-06-06 2 views
1

추적 파일에서 데이터를 추출하고 합계를 계산하려고합니다.awk 및 xxd를 사용하여 추적 파일에서 데이터를 추출하는 방법

cat avg.txt| gawk '{T+=$1} END {print T "\n"}' 

를하지만 나는 여러 뒤마에서 동일한 작업을 수행해야로서, xargs를 명령을 사용하려고 할 때, 나는 구문 오류 : 하나의 파일에 대해 다음 명령을 사용할 수 있습니다.

 ls *avg* | xargs -i sh -c " cat {} | gawk '{T+=$1} END {print T "\n"}'" 

둔한 : {T + =} END {프린트 T n을}

둔한 :^구문 오류

사람은 문제가 무엇인지 말씀해 주시겠습니까?

+0

당신이이 쉘에 의해 procssed되고 볼 수 있도록 또한'쉬 -vxc ... "로 쉬 호출이'당신의 AWK를'탈출 변화. \ $ 1'. 행운을 빌어 요. – shellter

답변

0

xargs를가 복잡 많이 추가되어

for file in *avg*; do 
    gawk '{T+=$1} END {print FILENAME ": "T}' "$file" 
done 

코드의 주된 문제는 $1 쉘 변수로 확장 할 수 외부 따옴표이었다. GNU와

0

당신이 이런 짓을 했을까 병렬 :

sum() { 
    gawk '{T+=$1} END {print FILENAME ": "T}' $1 
} 
export -f sum 
parallel sum ::: *avg*