サクラエディタでは正規表現を使って文字列を置換することができます。
正規表現を使うと簡単に色々な検索や置換ができ便利なので、いくつかを紹介します。
テキスト文字列の項目の区切りをタブ区切りに変換すると、そのままExcelに張り付けたとき、セルが分かれてくれるので便利だったりします。
正規表現の詳細については「正規表現 メモ」を参照してください。
環境
- OS:Windows 10 Pro 22H2
- サクラエディタ:サクラエディタ Ver. 2.1.0.0
例1(|
をタブに変換)
変換前のテキスト
1row|aaa
2row|bbb
3row|ccc
4row|ddd
|
をタブに変換するには以下の通り。
- 置換前:
\|
- 置換後:
\t
※置換前に\|
と|
の前に\
を付けているのは、|
が正規表現のメタ文字のため、単なる文字として認識させるため\
を付けてエスケープしています。
変換後のテキスト
1row aaa
2row bbb
3row ccc
4row ddd
例2(vmstat
コマンドの結果をタブ区切りに変換)
変換前のテキストとして、ここでは以下のコマンドでvmstat
の結果を日付付きで出力しています。
vmstat 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 }'
変換前のテキスト
2024/07/22 16:08:33 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
2024/07/22 16:08:33 r b swpd free buff cache si so bi bo in cs us sy id wa st
2024/07/22 16:08:33 3 0 0 1727720 3164 167068 0 0 646 196 195 386 3 4 80 14 0
2024/07/22 16:08:34 0 0 0 1727660 3164 167068 0 0 0 0 31 32 0 0 100 0 0
2024/07/22 16:08:35 0 0 0 1727660 3164 167068 0 0 0 0 24 32 0 0 100 0 0
2024/07/22 16:08:36 0 0 0 1727660 3164 167068 0 0 0 0 33 31 0 0 100 0 0
2024/07/22 16:08:37 0 0 0 1727660 3164 167068 0 0 0 0 34 32 0 0 100 0 0
2024/07/22 16:08:38 0 0 0 1727660 3164 167068 0 0 0 0 42 39 0 0 100 0 0
2024/07/22 16:08:39 0 0 0 1727660 3164 167068 0 0 0 0 25 28 0 0 100 0 0
2024/07/22 16:08:40 0 0 0 1727660 3164 167068 0 0 0 0 37 35 0 0 100 0 0
2024/07/22 16:08:41 0 0 0 1727660 3164 167068 0 0 0 0 31 32 0 1 99 0 0
2024/07/22 16:08:42 0 0 0 1727660 3164 167068 0 0 0 0 33 36 0 0 100 0 0
1つ以上の連続するスペースをタブに変換するには以下の通り。
- 置換前:
+
- 置換後:
\t
変換後のテキスト
2024/07/22 16:08:33 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
2024/07/22 16:08:33 r b swpd free buff cache si so bi bo in cs us sy id wa st
2024/07/22 16:08:33 3 0 0 1727720 3164 167068 0 0 646 196 195 386 3 4 80 14 0
2024/07/22 16:08:34 0 0 0 1727660 3164 167068 0 0 0 0 31 32 0 0 100 0 0
2024/07/22 16:08:35 0 0 0 1727660 3164 167068 0 0 0 0 24 32 0 0 100 0 0
2024/07/22 16:08:36 0 0 0 1727660 3164 167068 0 0 0 0 33 31 0 0 100 0 0
2024/07/22 16:08:37 0 0 0 1727660 3164 167068 0 0 0 0 34 32 0 0 100 0 0
2024/07/22 16:08:38 0 0 0 1727660 3164 167068 0 0 0 0 42 39 0 0 100 0 0
2024/07/22 16:08:39 0 0 0 1727660 3164 167068 0 0 0 0 25 28 0 0 100 0 0
2024/07/22 16:08:40 0 0 0 1727660 3164 167068 0 0 0 0 37 35 0 0 100 0 0
2024/07/22 16:08:41 0 0 0 1727660 3164 167068 0 0 0 0 31 32 0 1 99 0 0
2024/07/22 16:08:42 0 0 0 1727660 3164 167068 0 0 0 0 33 36 0 0 100 0 0
例3(apacheのアクセスログをタブ区切りに変換)
変換前のテキスト
192.168.0.2 - - [11/Jun/2023:19:02:23 +0900] "GET / HTTP/1.1" 200 620 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:02:23 +0900] "GET /js/chunk-vendors.ca179411.js HTTP/1.1" 200 97901 "http://192.168.0.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:02:23 +0900] "GET /js/app.d337ea2a.js HTTP/1.1" 200 15782 "http://192.168.0.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:02:23 +0900] "GET /css/app.9bdcf330.css HTTP/1.1" 200 425 "http://192.168.0.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:02:24 +0900] "GET /favicon.ico HTTP/1.1" 200 4286 "http://192.168.0.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:03:23 +0900] "GET /js/about.2921d089.js HTTP/1.1" 200 425 "http://192.168.0.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:03:53 +0900] "GET /js/app.d337ea2a.js.map HTTP/1.1" 200 23463 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:03:53 +0900] "GET /js/about.2921d089.js.map HTTP/1.1" 200 933 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
192.168.0.2 - - [11/Jun/2023:19:03:53 +0900] "GET /js/chunk-vendors.ca179411.js.map HTTP/1.1" 200 838872 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
スペース区切りをタブ区切りに変換し、"[]
の文字列を除去するには以下の通り。
- 置換前:
^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"$
- 置換後:
$1\t$2\t$3\t$4\t$5\t"$6"\t$7\t$8\t$9
※ここで$1
とは置換前の'()`の一つ目を表します。
変換後のテキスト
192.168.0.2 - - 11/Jun/2023:19:02:23 +0900 GET / HTTP/1.1 "200" 620 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:02:23 +0900 GET /js/chunk-vendors.ca179411.js HTTP/1.1 "200" 97901 http://192.168.0.9/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:02:23 +0900 GET /js/app.d337ea2a.js HTTP/1.1 "200" 15782 http://192.168.0.9/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:02:23 +0900 GET /css/app.9bdcf330.css HTTP/1.1 "200" 425 http://192.168.0.9/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:02:24 +0900 GET /favicon.ico HTTP/1.1 "200" 4286 http://192.168.0.9/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:03:23 +0900 GET /js/about.2921d089.js HTTP/1.1 "200" 425 http://192.168.0.9/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:03:53 +0900 GET /js/app.d337ea2a.js.map HTTP/1.1 "200" 23463 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:03:53 +0900 GET /js/about.2921d089.js.map HTTP/1.1 "200" 933 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
192.168.0.2 - - 11/Jun/2023:19:03:53 +0900 GET /js/chunk-vendors.ca179411.js.map HTTP/1.1 "200" 838872 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
以上