sed13 [Linux 셸 스크립트] bash - 128 변수 내부 문자열 일부를 치환하기 1. 사용 명령어 (1) echo 2. 키워드 & 사용처 (1) 키워드 파라미터 확장, 문자열, 치환, sed (2) 사용처 변수 내부 문자열을 sed 명령어를 사용하지 않고 치환하고 싶을 때 사용합니다. 3. 실행 예제 $ ./bash-where.sh perl /opt/local/bin/perl /usr/bin/perl 4. 스크립트 #!/bin/bash # 조사할 명령어 얻기 command="$1" ① # 인수 확인 if [ -z "$command" ]; then ② echo "에러: 조사 대상 명령어를 지정하세요." >&2 exit 1 fi # 환경 변수 $PATH의 :을 스페이스로 치환, for문 반복해서 사용 for dir in ${PATH//:/ } ③ do if [ -f "${dir}/${c.. 2021. 7. 6. [Linux 셸 스크립트] 제어 구문 - 098 변수가 포함된 IP 주소 목록 파일을 읽어서 ping 명령어로 확인하기 1. 사용 명령어 (1) sed (2) ping 2. 키워드 & 사용처 (1) 키워드 for문, 템플릿 파일, 치환, 변수 (2) 사용처 템플릿 파일을 사용해서 네트워크 개통을 확인하고 싶을 때 사용합니다. 3. 실행 예제 $ cat ping_target.lst %ADDR_HEAD%.1 %ADDR_HEAD%.2 %ADDR_HEAD%.3 %ADDR_HEAD%.4 $ ./for_command.sh 192.168.2 [Success] ping -> 192.168.2.1 [Success] ping -> 192.168.2.2 [Failed] ping -> 192.168.2.3 [Success] ping -> 192.168.2.4 4. 스크립트 #!/bin/sh # 명령행 인수 확인 if [ -z "$1" ]; t.. 2021. 4. 19. [Linux 셸 스크립트] 텍스트 처리 - 085 HTML 파일 문자 코드를 자동으로 판별해서 UTF-8로 인코딩된 파일로 바꾸기 1. 사용 명령어 (1) grep (2) sed (3) iconv 2. 키워드 & 사용처 (1) 키워드 HTML, meta 태그, 문자 코드 (2) 사용처 HTML 파일 meta 태그에서 자동으로 문자 코드를 판별해서 UTF-8로 변환하고 싶을 때 사용합니다. 3. 실행 예제 $ ./charset-utf8.sh $ ls newdir/ &2 ⑤ coontinue ⑤ fi # meta 태그에서 추출한 문자 코드에서 UTF-8으로 변환 # 디렉터리 $outdir에 출력 iconv -c -f "$charset" -t UTF-8 "$filename" > "${outdir}/${filename}" ⑥ done 5. 해설 이 스크립트는 현재 디렉터리에 있는 HTML 파일(확장자 .html)을 HTML 파일에 있는 m.. 2021. 4. 13. [Linux 셸 스크립트] 텍스트 처리 - 084 텍스트 파일에서 HTML 파일 만들기 1. 사용 명령어 (1) sed 2. 키워드 & 사용처 (1) 키워드 HTML, 이스케이프, 문자 참조, 줄바꿈, 텍스트 파일 (2) 사용처 서버에서 텍스트 파일을 간단한 HTML 파일로 변환해서 웹 브라우저로 보고 싶을 때 사용합니다. 3. 실행 예제 $ cat sample.txt 1 + 1 sample.html $ cat sample.html 2021. 4. 13. [Linux 셸 스크립트] 텍스트 처리 - 083 파일 크기를 줄이기 위해 자바스크립트 파일에서 빈 줄 제거하기 1. 사용 명령어 (1) sed 2. 키워드 & 사용처 (1) 키워드 빈 줄, 경량화, 전송률, 압축 (2) 사용처 모바일 사이트 등 전송량을 조금이라도 줄여야 하는 웹사이트 파일을 경량화하고 싶을 때 사용합니다. 3. 실행 예제 $ ./delline.sh $ ls newdir/ samplejs test.js "${outdir}/${filename}" ④ done 5. 해설 이 스크립트는 현재 디렉터리에 있는 자바스크립트 파일(확장자 .js)에서 빈 줄 및 탭, 스페이스만 있는 줄을 삭제해서 파일 크기를 경량화합니다. 모바일용 사이트나 조금이라도 전송량을 줄이고 싶을 때 사용할 수 있습니다. ①에서 우선 변환 후 출력용 디렉터리를 정의합니다. 여러 js 파일을 처리하므로 그것을 셸 변수 outdir에 정.. 2021. 4. 13. [Linux 셸 스크립트] 텍스트 처리 - 082 정해진 자릿수 숫자에 하이픈 넣기(우편번호 등) 1. 사용 명령어 (1) getopts (2) shift (3) awk (4) grep (5) sed 2. 키워드 & 사용처 (1) 키워드 옵션, 자릿수, 스페이스 제거, 우편번호 (2) 사용처 우편번호나 전화번호 같은 텍스트에서 정해진 자리에 하이픈을 넣거나 삭제하고 싶을 때 사용합니다. 3. 실행 예제 $ cat number-nohyphen.txt # 숫자뿐인 우편번호 562001 2250022 A1200B1 $ ./num-hyphen.sh number-nohyphen.txt # 하이픈 추가 561-0001 225-0022 $ cat number-hyphen.txt # 하이픈이 있는 우편번호 562-0001 325-10022 362-0001 A1B-0C1C $ ./number-hyphen.sh -d .. 2021. 4. 13. [Linux 셸 스크립트] 텍스트 처리 - 080 sed로 HTML 파일 속성을 바꿀 때 슬래시 이스케이프 피하기 1. 사용 명령어 (1) sed 2. 키워드 & 사용처 (1) 키워드 슬래시, 이스케이프 (2) 사용처 sed 명령어로 /를 포함한 문자열을 치환할 때 일일이 이스케이프하고 싶지 않을 때 사용합니다. 3. 실행 예제 $ ./sed-slash.sh 화면에 아무것도 표시죄디 않지만 HTML 파일에 있는 /img가 /images/로 치환됨 4. 스크립트 #!/bin/sh # 출력 디렉터리 정의 outdir="newdir" # 출력 디렉터리 존재 확인. 없으면 에러 종료 if [ ! -d "$outdir" ]; then ① echo "출력 디렉터리가 존재하지 않습니다: $outdir" >&2 ① exit 1 ① fi # 현재 디렉터리의 html 파일 처리 for htmlfile in *.html ② do # 파.. 2021. 4. 12. [Linux 셸 스크립트] 텍스트 처리 - 078 시스템 로그에서 IP 주소마다 횟수 집계하기 1. 사용 명령어 (1) sed (2) sort (3) uniq 2. 키워드 & 사용처 (1) 키워드 SSH, 부정 접속, 인증 실패, 로그 추출 (2) 사용처 sshd 로그 파일에서 암호 인증에 실패한 IP 주소를 세고 싶을 때 사용합니다. 3. 실행 예제 # ./ssh-fail.sh 1510.211.55.2 610.211.55.21 210.211.55.18 접속해온 IP 주소마다 ssh 암호 인증에 실패한 횟수가 많은 순서로 표시 4. 스크립트 #!/bin/sh # sshd 로그 파일 securelog="/var/log/secure" # IP 주소를 추출하기 위한 패턴. 변수에 저장 pattern="^.*sshd\[.*\].*Failed password for.* from \(.*\) port .*".. 2021. 4. 12. [Linux 셸 스크립트] 네트워크 - 060 IP 주소로 호스트명 얻기 1. 사용 명령어 (1) host (2) awk (3) sed 2. 키워드 & 사용처 (1) 키워드 IP 주소, 호스트명, 변환, DNS (2) 사용처 IP 주소가 적힌 파일을 읽어서 호스트명을 함께 표시하고 싶을 때 사용합니다. 3. 실행 예제 $ cat ip.txt 2021. 4. 6. [Linux 셸 스크립트] 네트워크 - 057 ping으로 특정 호스트 응답 평균 시간을 취득하기 1. 사용 명령어 (1) ping (2) sed (3) awk 2. 키워드 & 사용처 (1) 키워드 ICMP, 응답 속도, 평균값 (2) 사용처 특정 서버와 통신 상태를 조사하고 싶을 때 사용합니다. 3. 실행 예제 $ ./pingavg.sh Ping to: 192.168.2.1 Ping count: 10 Ping average[ms]: 38.79 4. 스크립트 #!/bin/sh ipaddr="192.168.2.1" ① count=10 ① echo "Ping to: $ipaddr" ② echo "Ping count: $count" ② echo "Ping average[ms]:" ② # ping 명령어 실행 결과를 임시 파일에 출력 ping -c $count $ipaddr > ping.$$ ③ # "tim.. 2021. 3. 30. 이전 1 2 다음