example: sed: -e option
sed
의 -e
옵션은 여러 가지 편집 명령을 실행할 수 있게 해주는 옵션임.
이는 스크립트를 여러 개 제공하여 복잡한 텍스트 처리를 수행할 때 매우 유용함.
예제: 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
명령은 여러 -e
옵션을 사용하여 두 가지 변환을 실행:
- IP 주소
192.168.1.1
을10.0.0.1
로 변경. - 상태 코드가
404
인 라인에서 "404"를 "Not Found"로 변경.
sed -e 's/192.168.1.1/10.0.0.1/' -e 's/" 404 "/" Not Found "/' nginx_access.log
변환 결과:
10.0.0.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"
10.0.0.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"
이 예제에서 볼 수 있듯이, -e
옵션을 사용하여 sed
명령은 여러 개의 편집 작업을 동시에 수행할 수 있음.
이런 방식으로 텍스트 파일의 내용을 복잡하게 변환 가능함.
'Linux' 카테고리의 다른 글
[linux] example: sed: -r or -E (0) | 2024.05.11 |
---|---|
[linux] example: sed: -f option (0) | 2024.05.11 |
[linux] example: sed: -n option (0) | 2024.05.11 |
[linux] sed (stream editor) 사용법 (0) | 2024.05.11 |
[Linux] sed vs. ed vs. vi : 텍스트 편집 도구 비교 (0) | 2024.05.11 |