1 awkの勉強
Linux等でのファイル暗号化ツールGnuPG(gpg)が手に入った(2025年9月15日付け記事をご覧ください。)こともあって、データ抽出に利用しようと、プログラミング言語awk(オーク)の勉強をしました。
その中で、思いどおりに動作してくれない場面があったので、他の方の参考なるかもしれないと思い、記録に残しておきます。

2 自習用のテキストファイル
自習用に、以下のようなテキストファイルを作りました。ファイル名はdata.txtとしました。
1 鬼滅の刃 きめつのやいば kimetu
2 進撃の巨人 しんげきのきょじん singeki
3 名探偵コナン めいたんていこなん meitantei
4 東京卍リベンジャーズ とうきょうまんじりべんじゃーず tokyo
5 ワンピース わんぴーす wanpisu
6 怪獣8号 かいじゅうはちごう kaiju
3 正規表現を使ったコマンド
必要データを取り出すため、正規表現を使って、次の【1】【2】のコマンドを実行しました。ピリオド「.」は、任意の一文字にマッチする正規表現のメタ文字です。
【1】awk '$4 ~ /meit.ntei/' data.txt
【2】awk '$3 ~ /めい.んてい/' data.txt
【1】は成功して、3番め「名探偵コナン」の行を取り出すことができます。
ところが、【2】は失敗し、反応がありません。
4 コマンド実行に失敗する原因
あれこれと、苦悩した挙句、分からないので生成AIのGeminiに尋ねてみました。
Geminiの回答は、「awkが日本語などマルチバイト文字の正規表現に対応していない」というものでした。詳しくはわかりませんが、そういうことらしいです*1。
一般的な(初心者向け)Linux教科書の中には、探した限りでは、その辺の解説は出てきません。多くの方が出くわす場面と思われ、解説されていてもよさそうですが。
それでは、また次の記事で。
goosyun
