はじめに
電子工作では、PICを¥使うことが多く
PICの購入は、秋月電子からよく買っています。
秋月電子のWebでPICを検索すると
8ページ近くも表示されます。
型番がわかっていれば、これでも良いのですが
新しい製品は出ていないか?
探そうとすると、困難です。
何とかしたいと考えた
そこで、秋月のWebから PIC検索結果をテキストコピーして
シェルスクリプトを書いて一覧表作れば良いのではないか。
しかし、シェルスクリプトを1から作るには、
それなりの時間が必要です。
もっと、簡単にやる方法はないのか?
今流行りのAIに助けてもらったらどうか。
日頃よく使っている、CoPilotやってみることにした。
Microsoft Copilot: Your AI companion
AIは他にも色々あるが、新しく使い方を覚えるのが
面倒なので、今回はこれにした。
依頼のやり方
お手本があれば、それを使うのもありだと思いますが
今回の場合、そうしたものは無いので
次のようにして、依頼事項を伝えた。
入力データは、パターンデータが複数並んでいる。
パターンの例は、次のとおり
PIC
ーーーーーーーーーーーーーーーー ここから
PICマイコン PIC16F1705-I/P
AAA
PICマイコン PIC16F1705-I/P <= 抜きだす
型番:PIC16F1705-I/P
販売コード:108578
1個
¥230(税込) <= 抜きだす
在庫あり
購入可能数:
1337個
購入数量
かごに入れる
ーーーーーーーーーーーーーーーー ここまで
欲しい一覧表
ーーーーーーーーーーーーーーーー ここから
PICマイコン PIC12C PICマイコン PIC12C509A-04/P (ワンタイム品)
PICマイコン PIC12F PICマイコン PIC12F1501-I/P
ーーーーーーーーーーーーーーーー ここまで
PIC12Fは、製品名称から抜き出して作成する。
CoPilotの表示
凡そ1から2秒で、次の内容が表示された
ーーーーーーーーーーーーーーーー ここから
次のBashスクリプトを使って、指定された処理を行うことができます。このスクリプトは、AWKとBashを使ってデータの抽出と整形を行います。
```bash
#!/bin/bash
# 入力ファイルの名前
input_file="input.txt"
output_file="output.tsv"
# テンポラリファイルを作成
temp_file=$(mktemp)
# 必要な行を抽出して連結
awk '/PICマイコン|¥[0-9]+\(税込\)/' $input_file | paste - - | while IFS=$'\t' read -r col1 col2; do
name=$(echo "$col1" | awk '{print $1}')
series=$(echo "$col1" | awk '{print $2}' | grep -o 'PIC[0-9A-Za-z]*')
model=$(echo "$col1" | awk '{print $2}' | grep -o '[0-9A-Za-z]*-[A-Za-z0-9/]*')
price=$(echo "$col2")
echo -e "${name}\t${series}\t${model}\t${price}" >> $temp_file
done
# ヘッダを追加して最終的な出力ファイルを作成
echo -e "列1\t列2\t列3\t列4" > $output_file
cat $temp_file >> $output_file
# テンポラリファイルを削除
rm $temp_file
echo "処理が完了しました。結果は $output_file に出力されました。"
```
このスクリプトの説明は以下の通りです:
1. 入力ファイルと出力ファイルの名前を設定します。
2. 必要な行を抽出して連結します。AWKを使って「PICマイコン」と「価格(¥◯◯◯(税込))」の行を抽出し、pasteを使って2行ずつ連結します。
3. 各行を処理して、名称、シリーズ、型式、価格を抽出します。AWKを使って各フィールドを抽出します。
4. ヘッダ行を出力ファイルに追加し、テンポラリファイルの内容を出力ファイルにコピーします。
5. テンポラリファイルを削除します。
このスクリプトを使って、所定の処理を行い、タブ区切り形式のファイルを生成できます。問題があれば、教えてくださいね。✨
ーーーーーーーーーーーーーーーー ここまで
スクリプトの処理の説明もあるので
全体の動作の把握はとても楽。
試してみた
評価データをスクリプトに入れて試してみた
若干の不具合はあるものの、基本的動作はしている。
いくつかの不具合は、使う側が手直しをすれば
完成となるレベルです。
フレームワークとしては十分に使える。
まとめ
CoPilotにやりたいことを伝えると
1から2秒でスクリプトが書き出された。
スクリプトの説明もついてくる。
私には、この時間でスクリプトの見本を書き出す技量はない。
スクリプトは、完璧ではないが、
フレームワークだと思えば決して悪くない。
試してみて思ったことは、
AIが提示してくる内容をわかる程度の
スキルが使う側に求められている
これからも、
Python, Javascript, PICマイコンなどに広げて
使っていきたい。