※ 이거 짜다가 머리털 뽑히는 줄 알았다..  뺑이쳤다
아뭏든 이래저래 하다보니 목적은 달성했다.

좀 가다듬어야 하는디...
# locale을 한글로
export LANG=ko_KR.eucKR

# 날짜 중 단자리의 날짜에서 0 떼어내기

DATE=`expr \`date +%d\` + 1 - 1`

# 달력 프로그램에서 년도 표시줄 떼고 요일 표시줄 떼고

cal | grep -v `date +%Y` | grep -v 월 > ./DAL

# 첫 칼럼에 ' ' 필요

sed 's@^@ @g' ./DAL > ./DAL2

# 마지막 칼럼에 ' ' 필요

sed 's@$@ @g' ./DAL2 > ./DAL

# awk로 매치되는 라인이 나올 때까지 if loop

awk '{ if ( $0 ~ / '"${DATE}"' / ) print NR }' ./DAL

사용자 삽입 이미지

반응형
Posted by She쥐포s

퍼왔습니다.
http://devfrog.egloos.com/tb/293560

awk 에서 shell 변수 사용하기

#!/bin/sh
if [ $# -ne 4 ]; then
    echo "Usage: log_cnt <file_name> <err_code> <log_point|0> <proc_hour>"
    exit
fi
cnt=1
if [ $3 -ne 0 ]; then
    cat $1 | awk 'BEGIN{FS=";"}{ if ( $10 == '"${2}"' && $7 == '"${3}"' ) print }' | grep ^$4 | wc -l
else
    while [ "$cnt" -ne 5 ]
    do
        echo "log point $cnt: c"
        cat $1 | awk 'BEGIN{FS=";"}{ if ( $10 == '"${2}"' && $7 == '"${cnt}"' ) print }' | grep ^$4 | wc -l
        cnt=`expr $cnt + 1`
    done
fi

-----
shell script 에서 awk 표현식 안에서 shell 의 input parameter 를 쓸 경우가 있다.
이때, awk 에서 shell 변수로 인식시키기 위해서는 ' " ${변수명} "  ' 과 같은 방식으로 사용해야 한다.

반응형
Posted by She쥐포s

ittoolbox 메일리스트의 unixadmin-l 메일리스트를 보다보니 다음과 같은 내용이 있어
가져왔습니다.

Command Line의 인수로 패스워드로 받는 경우 Shell에서는 패스워드를 숨길 수가
없어 다음과 같은 방식으로 처리합니다.

--------------------<원본>-------------------------
#!/usr/bin/sh
# 일반 유닉스에서 변수를 초기화(?)하는 듯
TEST1=

# 문자열을 입력받기 위한 프롬프트 출력
echo "Enter TEST1:"

# 화면 출력 off
stty -echo

# TEST1에 해당하는 값을 읽음
read TEST1

# 화면 출력 on
stty echo

# 화면에 인수 출력
echo "TEST1=${TEST1}"

# 끝!
exit
--------------------<원본끝>-----------------------

위의 내용을 Linux에서 사용하도록 변형

#!/bin/sh
TEST1=
# -n 옵션으로 한 줄에 표시

echo -n "Enter TEST1:"
stty -echo
read TEST1
echo ""
stty echo
echo "TEST1=${TEST1}"
exit

다음은 실행시의 화면(※ Enter TEST1: 이후에는 표시되지 않음)

사용자 삽입 이미지

반응형
Posted by She쥐포s
이전버튼 1 2 이전버튼

블로그 이미지
She쥐포s
Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함