Liux 시스템 에서 mem 점용 률 - awk 사용 상세 설명 가 져 오기
4157 단어 Linux 프로 그래 밍 학습 노트
본 고 는 획득 시스템 의 mem 점용 율 을 실현 하 는 것 을 착안점 으로 하고 주로 awk 명령 의 일부 상용 용법 을 분석 하고 자 한다.
awk 명령
awk 는 linux / unix 에서 텍스트 와 데 이 터 를 처리 하 는 프로 그래 밍 언어 입 니 다.데 이 터 는 표준 입력 (stdin), 하나 이상 의 파일 또는 다른 명령 의 출력 에서 나 올 수 있 습 니 다.사용자 정의 함수 와 동적 정규 표현 식 등 선진 적 인 기능 을 지원 하 며 linux / unix 의 강력 한 프로 그래 밍 도구 입 니 다.
부호 블록
#!/bin/sh
MemTotal=$(cat /proc/meminfo |grep MemTotal|awk '{ print $2}')
MemFree=$(cat /proc/meminfo |grep MemFree|awk '{ print $2}')
echo "MemFree/MemTotal=$((MemFree*100/$MemTotal))"
echo "this is end,byebye~"
실행 결과
결과 분석
사실 이 단락 코드 는 주로
cat /proc/meminfo |grep MemTotal|awk '{ print $2}'
인 데 그 중에서 cat /proc/meminfo |grep MemTotal
의 실행 결 과 는 MemTotal: 4131724 kB
이 고 awk 의 기능 도 명확 하 다. 두 번 째 문자열 인 4131724, 즉 2 의 값 을 꺼낸다.여기 서 파이프 가 전 달 된 값 은 위 에서 제시 한 것 과 같 습 니 다. 1 은 분명히 MemTotal: 이지 만 $0 의 값 은 구체 적 으로 무엇 인지 알 수 없습니다.또한, 위의 명령 에 따라 다른 데 이 터 를 얻 을 수 있 습 니 다. 예 를 들 어 / proc / stat 안의 데 이 터 를 통 해 cpu 의 사용률 을 계산 할 수 있 고, fconfig 와 결합 하여 이 컴퓨터 의 IP 를 얻 을 수 있 습 니 다.
#!/bin/sh
echo "hello,i am just a test"
num=$(ifconfig eth0 | grep "inet " | awk '{ print $2}')
echo $num
echo "this is end,byebye~"
awk 명령 분석
awk 스 크 립 트 의 기본 구조
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
BEGIN 구문 블록, 패턴 이 일치 하 는 유 니 버 설 구문 블록, END 구문 블록 3 부분 으로 구성 되 어 있 으 며 이 세 부분 은 선택 할 수 있 습 니 다.모든 부분 이 스 크 립 트 에 나타 나 지 않 을 수 있 습 니 다. 스 크 립 트 는 보통 작은 따옴표 나 작은 따옴표 에 있 습 니 다. 예 를 들 어 awk 'BEGIN {i = 0} {i +} END {print i}' filename 과 awk 'BEGIN {i = 0} {i +} END {print i}' filename
echo -e "A B C D E F" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'
Start
A B C D E F
End
awk 는 파일 (file) 의 명령 도 처리 할 수 있 고 다른 명령 의 데이터 (파이프) 도 받 을 수 있 습 니 다.
awk 내장 변수 (미리 정 의 된 변수)
설명: [A] [N] [P] [G] 는 첫 번 째 지원 변 수 를 나타 내 는 도구 입 니 다. [A] = awk, [N] = nawk, [P] = POSIXawk, [G] = gawk
$n 현재 기 록 된 n 번 째 필드, 예 를 들 어 n 은 1 로 첫 번 째 필드 를 표시 하고 n 은 2 로 두 번 째 필드 를 표시 합 니 다.