graph TD
A[目標設定] --> B{目標は具体的か?}
B -->|はい| C[行動計画の作成]
B -->|いいえ| A
C --> D{計画は実行可能か?}
D -->|はい| E[行動の実行]
D -->|いいえ| C
E --> F{行動の評価}
F -->|目標未達成| G[計画の調整]
F -->|目標達成| H[新たな目標設定]
G --> C
H --> A
サクラエディタ正規表現(Perplexity)
サクラエディタでメールアドレスにマッチする正規表現は以下のようになります1235。^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9][a-zA-Z0-9-][a-zA-Z0-9].)+[a-zA-Z]{2,}$解説:
^
は文字列の先頭を表す[a-zA-Z0-9_.+-]+
はローカル部分を表し、英数字と記号_.+-
の1文字以上の繰り返し@
はアットマーク([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+
はドメイン部分を表し:[a-zA-Z0-9]
は英数字の1文字[a-zA-Z0-9-]*
は英数字とハイフンの0文字以上の繰り返し[a-zA-Z0-9]*
は英数字の0文字以上の繰り返し\.
はドット+
は直前のグループの1回以上の繰り返し
[a-zA-Z]{2,}
はトップレベルドメインを表し、英字2文字以上$
は文字列の末尾を表す
ただし、この正規表現ではドットに関する制限(ドットが最初や最後にある、連続したドット)のチェックはできていません。
これを考慮した正規表現は以下のようになります5。^[a-zA-Z0-9_+-]+(.[a-zA-Z0-9_+-]+)@([a-zA-Z0-9][a-zA-Z0-9-][a-zA-Z0-9]*.)+[a-zA-Z]{2,}$サクラエディタの検索や置換で上記の正規表現を使うことで、メールアドレスにマッチさせることができます。
ログファイル追記判定(ChatGTP)
#!/bin/bash
# ログファイル名
LOGFILE="zip.log"
# ログファイルが存在し、かつ最終修正時刻が60分以内の場合は追記、そうでなければ新規作成するための判定
if -f "$LOGFILE" ; then
# 現在時刻とログファイルの最終修正時刻の差分を分で計算
DIFF=$(($(date +%s) - $(date +%s -r "$LOGFILE")))
if $DIFF -gt 3600 ; then
# 60分を超えている場合はログファイルを新規作成
echo "ログファイルが60分以上古いので、新規に作成します。" > "$LOGFILE"
fi
else
# ログファイルが存在しない場合は新規作成
echo "ログファイルが存在しないため、新規に作成します。" > "$LOGFILE"
fi
# ZIP圧縮を行うコマンドを実行し、標準出力と標準エラー出力をログファイルに追記
# 圧縮対象のファイルやディレクトリを適宜指定してください
zip -r compressed_file.zip target_directory_or_file >> "$LOGFILE" 2>&1
echo "圧縮処理が完了しました。" >> "$LOGFILE"
実行時エラー対応
memo
-Dlog4j2.loggerContextFactory=org.apache.logging.log4j.core.impl.Log4jContextFactory
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>
POI(GPT4)
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ooxml.POIXMLProperties;
import java.io.File;
public class ExcelPropertiesExample {
public static void main(String[] args) {
try {
// Excelファイルの読み込み
OPCPackage opcPackage = OPCPackage.open(new File("あなたのファイルパス.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(opcPackage);
// プロパティの取得
POIXMLProperties props = workbook.getProperties();
POIXMLProperties.CoreProperties coreProps = props.getCoreProperties();
String title = coreProps.getTitle();
String subject = coreProps.getSubject();
String author = coreProps.getCreator();
// プロパティの表示
System.out.println("タイトル: " + title);
System.out.println("サブジェクト: " + subject);
System.out.println("作者: " + author);
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
BeanShell(Claude3)
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
// Excelファイルを開く
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("path/to/your/file.xls"));
// SummaryInformationを取得
SummaryInformation si = (SummaryInformation) fs.getRoot().getEntry(SummaryInformation.DEFAULT_STREAM_NAME);
if (si != null) {
String title = si.getTitle();
String subject = si.getSubject();
String author = si.getAuthor();
// 他のプロパティを取得...
}
// DocumentSummaryInformationを取得
DocumentSummaryInformation dsi = (DocumentSummaryInformation) fs.getRoot().getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
if (dsi != null) {
String category = dsi.getCategory();
String manager = dsi.getManager();
String company = dsi.getCompany();
// 他のプロパティを取得...
}
fs.close();
backup(Gemini)
#!/bin/bash
# バックアップ対象ディレクトリ
SRC_DIR=/path/to/source_directory
# バックアップ先ディレクトリ
DEST_DIR=/path/to/destination_directory
# 差分バックアップ用の昨日の日付を取得
YESTERDAY=$(date -d "yesterday" +%F)
# 曜日を取得
WEEKDAY=$(date +%u)
# ログファイル
LOGFILE=/var/log/backup.log
# ログ関数の定義
log() {
echo "$(date) $1" >> $LOGFILE
}
# フルバックアップを実行
full_backup() {
log "Performing full backup..."
zip -r $DEST_DIR/full_backup_$(date +%Y%m%d).zip $SRC_DIR
log "Full backup completed."
}
# 差分バックアップを実行
differential_backup() {
log "Performing differential backup..."
find $SRC_DIR -mtime -1 -newer $YESTERDAY -type f -print0 | zip -0r $DEST_DIR/diff_backup_$(date +%Y%m%d).zip -@
log "Differential backup completed."
}
# メイン処理
case $WEEKDAY in
1|2|3|4|5|7) # 平日および土曜日
differential_backup
;;
6) # 日曜日
full_backup
;;
esac