'Linux & Unix'에 해당되는 글 2건

  1. 2019.07.18 [AWK] 기본 사용법
  2. 2018.07.04 [Solaris] 프로세스 Commnad line 옵션 보기
2019. 7. 18. 13:16

 

awk

입력을 주어진 분리자(field seperator)로 분리하여 명령을 처리합니다.

주요 옵션

옵션설명

F 문자열을 분리할 기준이 되는 분리문자 입력
v 파라미터 전달

내장 함수

awk는 지정한 처리를 실행할 때 내장 함수를 이용할 수 있습니다.

함수설명

sub 지정한 문자열 치환
gsub 문자열 일괄 치환
index 주어진 문자열과 일치하는 문자의 인덱스를 반환
length 문자열의 길이를 반환
substr 시작위치에서 주어진 길이 만큼의 문자열 반환
split 문자열을 분리하여 배열로 반환
printf 지정한 포맷에 따라 함수 출력

sub

$ echo "i have a water." | awk -F " " '{ sub("a", "b", $4); print $4 }'

wbter.

gsub

$ echo "i have a water." | awk -F " " '{ gsub("a", "b"); print $1" "$2" "$3" "$4 }'

i hbve b wbter.

index

$ echo "i have a water." | awk -F " " '{ print index($4, "a") }'

2

length

$ echo "i have a water." | awk -F " " '{ print length($4) }'

6

substr

$ echo "1234567890" | awk -F " " '{ print substr($1, 3, 2) }'

34

split

$ echo "A/B/C/D/E/F/G" | awk -F " " '{ print split($1, array, "/");print array[1];print array[3]; }'

7 A C

printf

$ echo | awk '{ printf("%.1f + %.2f = %.3f\n", 40.1, 20.2, 40.1 + 20.2); }'

40.1 + 20.20 = 60.300

사용예제

그룹의 합 구하기

그룹의 합을 구하는 것은 배열을 이용합니다. 배열의 인덱스를 키로 사용하여 값을 모두 더하여 주고 마지막에 출력하면 됩니다.

$ cat sample.txt a 1 b 2 a 4 c 1 c 2 $ cat sample.txt | awk '{ arr[$1] += $2 } END { for (i in arr) { print i, arr[i] } }'

a 5 b 2 c 3

합계(sum) 계산하기

합계는 지정한 인덱스의 값을 모두 더하여 구할 수 있습니다.

$ cat sample.txt | awk '{sum+=$2} END {print sum}'

10

문자열 자르기

문자열을 자를때는 내장함수 substr을 이용합니다.

$ echo "1234567890" | awk -F " " '{ print substr($1, 3, 2) }'

34

파라미터 전달

awk에 파라미터를 전달 할 때는 v 옵션을 이용합니다. v 옵션과 함께 이름=값 형태로 전달하고 내장함수에서 사용하면 됩니다.

root="/webroot" $ echo | awk -v r=$root '{ print "shell root value - " r}' shell root value - /webroot

마지막 편집일시 : 2019년 5월 9일 11:17 오전

 

 

# 참고

https://wikidocs.net/29643

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

Posted by citrine
2018. 7. 4. 14:38

1. 조사 배경

- 리눅스는 단순 ps-ef로 확인하면 command line 옵션을 확인 할 수 있었다.

 - 하지만 Solaris에서는 프로세스의 command line이 짤려서 보이질 않았다.




2. 명령

pargs [PID]

==<> 즉 ps -ef|grep 으로 프로세스를 가져오고, 상세 내용은 pargs 명령을 통해 확인한다.




3.참고

https://unix.stackexchange.com/questions/3934/how-can-i-get-a-full-process-list-in-solaris-without-truncated-lines

Posted by citrine