본문 바로가기
Linux

[linux] example: sed: -f option

by ds31x 2024. 5. 11.

example: sed: -f option

sed-f 옵션은 스크립트 파일에서 sed 명령을 읽어서 실행할 수 있게 해주는 옵션임.

  • 이 옵션을 사용하면 복잡한 또는 긴 sed 스크립트를 파일에 저장하여 관리하기 쉽고, 재사용할 수 있게 됨.
  • 이를 통해 명령 줄이 간결하게 유지되며, 스크립트를 더욱 체계적으로 관리할 수 있음.

특히 복잡하고 긴 sed 명령을 관리할 때 유용함.


스크립트 파일 예제

아래는 sed 스크립트 파일(script.sed)의 예임.

이 스크립트는:

  1. 모든 "error" 문자열을 "ERROR"로 대문자화합니다.
  2. 상태 코드 404를 "Not Found"로 변경합니다.

script.sed 파일 내용:

s/error/ERROR/g
s/ 404 / Not Found /

사용 예: Nginx 로그 파일 수정

Nginx 액세스 로그 파일(nginx_access.log):

192.168.1.1 - - [10/Oct/2023:13:55:12 +0000] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
192.168.1.2 - - [10/Oct/2023:13:55:15 +0000] "POST /form_submit.php HTTP/1.1" 200 150 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
192.168.1.3 - - [10/Oct/2023:13:55:17 +0000] "GET /images/logo.png HTTP/1.1" 404 209 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1"
192.168.1.1 - - [10/Oct/2023:13:55:19 +0000] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36"

 

명령 실행:

sed -f script.sed nginx_access.log

 

결과 출력:

192.168.1.1 - - [10/Oct/2023:13:55:12 +0000] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
192.168.1.2 - - [10/Oct/2023:13:55:15 +0000] "POST /form_submit.php HTTP/1.1" 200 150 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
192.168.1.3 - - [10/Oct/2023:13:55:17 +0000] "GET /images/logo.png HTTP/1.1" Not Found 209 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1"
192.168.1.1 - - [10/Oct/2023:13:55:19 +0000] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36"

'Linux' 카테고리의 다른 글

[linux] find 사용법.  (0) 2024.05.11
[linux] example: sed: -r or -E  (0) 2024.05.11
[linux] example: sed: -e option  (0) 2024.05.11
[linux] example: sed: -n option  (0) 2024.05.11
[linux] sed (stream editor) 사용법  (0) 2024.05.11