個人のウィキを Foswiki から Markdown ファイルに変換してから、JAMstack デプロイメントに変換しようとしています。Foswiki はフラット ファイルを使用し、メタデータを次の形式で保存します。
%META:TOPICINFO{author="TeotiNathaniel" comment="reprev" date="1571215308" format="1.1" reprev="13" version="14"}%
バージョン管理に git リポジトリを使用したいのですが、後でそれを記事のメタデータにリンクすることについて心配します。この時点で、これらのブロックを次のようなものに変換したいだけです。
---
author: Teoti Nathaniel
revdate: 1539108277
---
少し調整した後、次の正規表現を作成しました。
author\=\['"\]\(\\w\+\)\['"\]\(\?\:\.\*\)date\=\['"\]\(\\w\+\)\['"\]
regex101によると、これは機能し、私の 2 つのキャプチャ グループには目的の結果が含まれています。実際に実行しようとすると:
perl -0777 -pe 's/author\=\['"\]\(\\w\+\)\['"\]\(\?\:\.\*\)date\=\['"\]\(\\w\+\)\['"\]/author: $1\nrevdate: $2/gms' somefile.txt
これだけを取得します:
>
私の以前の試み(詳細が特定の順序でないと壊れます)は次のようになり、正しく実行されました:
perl -0777 -pe 's/%META:TOPICINFO\{author="(.*)"\ date="(.*)"\ format="(.*)"\ (.*)\}\%/author:$1 \nrevdate:$2/gms' somefile.txt
これはエスケープ文字の問題だと思いますが、わかりません。私も行って、このツールを見つけて、それらが正しいことを確認しました.
ここで力ずくで理解するのは非効率でイライラするので、コミュニティに助けを求めています。