우리는 항상 문제를 해결하는 여러 가지 방법이 있다는 것을 알고 있습니다. 한 가지 경우에 특정 솔루션의 각각의 장점과 단점이 무엇인지 궁금합니다. 시공간적 (그리고 청결 함 - 그러나 그것은 주관적이므로 주된 초점이 아닙니다).Awk 대 Awk + cut 대 bash
문자열이 포함 된 파일 (xyz
)을 포함하지만 배타적이지 않은 파일이 있습니다. 특정 열에서 정수 값이 조건을 채워야하는 행에 관심이 있습니다.
이 예제에서는 sslscan 출력에서 약한 암호를 필터링하는 예제를 사용합니다. 이것은 특정 시간이나 공간을 집중적으로 사용하는 것이 아니므로,이 예제는 어떻게 보일지에 대한 명확한 그림 만 가질 수있었습니다.
질문이 나왔습니다. 솔루션을 찾으려고했지만 stackoverflow에 대한 다양한 답변을 찾았습니다. 그리고 나 자신도 뭔가를 생각해 냈습니다.
가능한 용액 1 (순수 AWK)
awk '$0~/xyz/ && $3 < 128 {$1=""; print}' file-with-data.txt
가능한 용액 2 (AWK + 컷)
awk '$0~/xyz/ && $3 < 128' file-with-data.txt | cut -c15-
가능한 용액 3 (떠들썩한 파티)
grep xyz file-with-data.txt | while read -r line
do if [ $(echo $line | cut -d" " -f3) -le 127 ]
then echo $line
fi
done
그냥 측정 해주세요. –
글쎄, 청결 문제가있다. bash에 머무르는 것이 낫다. 일단 awk에 들어가면 awk에 머물러있게하는 것이 더 좋다. 편도를 사용하거나 재미있는 경험이있을 수도 있습니다. 또한 여기서는 실제로 측정 할 수 없습니다. – user857990