2024-11-11 「分断」を英語で何と表現するか
2024-11-03 キスの描写が印象的な歌詞
2024-10-29 生成AIで英語を調べる
2024-10-23 桜井政博さんのYouTubeチャンネル最終回
2024-10-20 目的語-動詞タイプの英単語
2024-09-20 生成AIにシェルスクリプトの作成を助けてもらう
最近、アメリカ大統領選挙で「分断」というキーワードがよく出てきていたが、何とい表現するのだろうと疑問に思った。
"President Trump is trying to divide America."
トランプ大統領がアメリカ社会を分断しようとしている みたいな表現は政治についての番組・記事とかによく出ます。
dividedはunited (united states of america)の反対語なので結構意味のある言い方です。
なるほど。
J-popを聴いていると、キスの描写が個性的なものが多くて笑ってしまいます。
骨まで溶けるような テキーラみたいなキスをして
(真夏の夜の夢, 松任谷由実)
誤解だよってあなたは笑う だけど Kissはウソのにおい
(悲しみがとまらない, 杏里)
奥歯も凍るようなキスをしたいだけさ
(エロティカ・セブン, サザン・オールスターズ)
息も止まるくらいの甘い口付けをしようよ
(LA・LA・LA LOVE SONG, 久保田 利伸)
生成AIで単語を調べると、辞書に載ってないことまで教えてくれます。現代的な言葉、口語、慣用的な言い回しなど範囲が幅広い。単語だけより、文章をそっくり与えたほうが文脈を踏まえて教えてくれるので助かります。
毎回「なるほど」と楽しく見ていた桜井政博さんのYouTubeチャンネル「桜井政博のゲーム作るには」が最終回を迎えました。チャンネルを企画した背景、制作の過程が詳しく説明されました。桜井さんの情熱とハードワークはとんでもないレベルです。圧倒され感動しました。私も頑張らなければ。
私はやりたいことがたくさんあり、それら一つ一つをプロジェクトと呼んでいます。プロジェクトに関して私は貪欲で欲張りです。やりたいことは全部やりたいです。優先順位付けはあるものの、最終的には全部やりたい。それなのに時間は限られており、生きるためにやらなければならない細々としたことは山のようにあります。プロジェクトに割ける時間が減って、思うように進められないとストレスが溜まります。未達成のまま死んでしまうのが悲しすぎて、「もっと頑張らなければ」と強迫的な気持ちになります。桜井政博さんのハードワークを見ると、私も頑張らなければと思います。焦っても意味がないのはわかっているんですけれど。
page-turner:ページをめくらずにいられないような読みだしたらやめられない本
eye-opener:はたと目を開かせるもの。目から鱗が落ちるもの。
↑こういう目的語-動詞を組み合わせた単語ってすごく面白いなと思って生成AIのGeminiに聞いてみました。
・Mind-blowing:驚くべき、衝撃的な
・Heart-wrenching:心を揺さぶる(悲しい)
・Game-changer:形勢を一変させるもの
・ Money-maker:お金を稼ぐもの
・ Record-breaker:記録破り
・ Peace-maker:仲裁人
・ Trouble-maker:問題を引き起こす人
・ Decision-maker:決定権を持つ人
・ Earth-shattering:地震が起きたような(衝撃的な)-科学分野
・ Mind-bending:精神をゆがめるような-哲学、心理学
・ Breathtaking:息をのむような-自然、芸術
・ Soul-stirring:魂を揺さぶるような-音楽、文学
こんな単語を使って話してみたいですね。
メインPCをWindowsからLinuxに移行したくて、今使っているWindows Powershell のシェルスクリプトをbashで書けるように勉強しないとなあ、と思っていた。「生成AIに変換させればいいのでは」と思いつき、Geminiに尋ねたところ、すぐに回答が来た。しかも解説付き。まだLinuxで動くか試してないけど、もし狙い通りに動作したらすごいなあ。完璧でなくても部分的に教えてもらえるのはありがたい。
5年ほど前から自動化したい作業があるものの、シェルスクリプトにするのは複雑そうだから、保留にしている。毎週更新されるweb記事のテキストをコピーしてテキストファイルに保存する作業。題名を抜き出してコピペ、URLをコピペ、webページのいらない部分を削除しつつ本文のみコピペ。毎回、URLが異なるし、正規表現でスクリプトを書くのがなんとなくハードルが高そうで手を付けられなかったものの、Geminiに相談すれば実現できるかもしれないと思った。今度ためしてみる。わくわく。
質問
以下はwindows Powershellのスクリプトです。bashに書き換えてください。
$datetime = ( Get-Content F:\diary\today.txt )[0..4] | Select-String "\d{4}-\d{2}-\d{2}"
$date="$datetime".Substring(0,10)
Get-Content "F:\diary\today.txt" -Encoding UTF8 | Out-File F:\diary\latest_month\"$date"_diary.txt -Encoding UTF8
Set-Content "F:\diary\today.txt" $null -Encoding UTF8
Invoke-Item -Path "F:\diary\today.txt"
回答
## PowerShellスクリプトをBashに書き換える
### スクリプトの目的
PowerShellスクリプトの目的は、以下のようであると推測されます。
- 日付の取得: F:\diary\today.txt ファイルから日付を取得する。
- ファイルの移動: 日付をファイル名に含めて、日記ファイルを F:\diary\latest_month フォルダに移動する。
- 元ファイルのクリア: F:\diary\today.txt ファイルの中身を空にする。
- テキストエディタの起動: 空になった F:\diary\diary\today.txt ファイルをテキストエディタで開く。
Bashへの書き換え
#!/bin/bash
# 日付の取得
date=$(head -n 1 F:\diary\today.txt | grep -oP '\d{4}-\d{2}-\d{2}')
# ファイルの移動
mv F:\diary\today.txt F:\diary\latest_month/"$date"_diary.txt
# 元ファイルのクリア
F:\diary\today.txt
# テキストエディタの起動 (例: vim)
vim F:\diary\today.txt
各行の解説
#!/bin/bash:
このスクリプトがBashシェルで実行されることを示すShebangラインです。
date=$(head -n 1 F:\diary\today.txt | grep -oP '\d{4}-\d{2}-\d{2}'):
head -n 1:
today.txt ファイルの先頭1行だけを取り出す。grep -oP '\d{4}-\d{2}-\d{2}':
正規表現を使って、日付の形式に一致する部分だけを抽出する。
mv F:\diary\today.txt F:\diary\latest_month/"$date"_diary.txt:
ファイルを移動し、新しいファイル名に日付を追加する。
F:\diary\today.txt:
ファイルの中身を空にする。
vim F:\diary\today.txt:
vim エディタでファイルを編集する。お好みのテキストエディタ (nano, emacsなど) に置き換えてください。
注意点
- エンコーディング: PowerShellの -Encoding UTF8 オプションに対応するBashのオプションはありません。もし、today.txt ファイルがUTF-8以外のエンコーディングの場合、適切なエンコーディングを指定する必要があります。
- 正規表現: PowerShellとBashの正規表現には若干の違いがあります。上記スクリプトでは、Perl互換の正規表現 (-P オプション) を使用しています。
- テキストエディタ: vim 以外にも、nano, emacs などのテキストエディタを使用できます。
- エラー処理: 上記スクリプトは基本的な動作のみを想定しています。エラー処理を追加することで、より堅牢なスクリプトにすることができます。
その他
- 日付のフォーマット: today.txt ファイルの日付のフォーマットが異なる場合は、正規表現を調整する必要があります。
- ファイルが存在しない場合の処理: ファイルが存在しない場合の処理を追加することもできます。
- パーミッション: スクリプトを実行するユーザーに、ファイルへの書き込み権限などが付与されていることを確認してください。
まとめ
PowerShellスクリプトをBashに書き換えることで、Linux/macOS環境でも同様の処理を実行できるようになりました。Bashの柔軟な機能を活用することで、より高度なスクリプトを作成することも可能です。
ご希望に応じて、より詳細な説明やカスタマイズも可能です。