次のアカウントを含むテキストファイルがあります。
入力サンプル
Paid 100 15/02/2022 3000
recd 50 15/02/2022 nelur trip 3050
PAID 80 25/03/2022 Adjusted towards trip 3130
14 PAID 50 26/03/2022 Given to Nate Cash (padma ac) 3180
最初の数字を無視するか、最初の単語にリンクしたいと思います。次に、最初の単語をダッシュ/ハイフンにリンクし、日付を入力してから単語を入力します。数字を追加するので、新しい行を除いてスペースを削除します。
Linuxノートブックに簡単にインストールして実行できるスクリプト、perl / php、bash、awk、sedなどがあります。
出力サンプル
Paid;100;15/02/2022;3000
recd;50;15/02/2022;nelur-trip;3050
PAID;80;25/03/2022;Adjusted-towards-trip;3130
14-PAID;50;26/03/2022;Given-to-Nate-Cash-(padma-ac);3180
これをスプレッドシートにインポートしたいので、他の方法も可能です。約300行があります。
以前は何を試しましたか?スプレッドシートを使用して、画像と画像 - テキストコンバータから得られたデータをクリーンアップします。
また、notepad++と列選択を試してみました。私はすぐにAWKを学びようとしました。私はJavaを知っていますが、時間がかかります。答えを受けた後、いくつかの事実を学びました。
- 行番号がある場合、それを維持することで、awkを使用するときにどの行が欠落しているかを判断するのに役立ちます。 ASはスキップされた行を警告せずに出力を提供します。たぶんそれをバイパスする設定かもしれませんが、わかりません。
- csv、スプレッドシート、またはPDF形式のアカウントは常に要求され、画像は許可されていません!
私たちのアカウントの友達から受け取った画像に画像をテキストとして実行して入力を受け取ります。
ベストアンサー1
perl -pe 's/(?:^[0-9]+|[^0-9])\K (?=[^0-9])/-/g;
s/ /;/g
' -- file
-p
入力を1行ずつ読み、処理後に各行を印刷します。- 最初の置換はLookaroundアサーションを使用します。文字列の先頭にスペースの前に数字があるか、数字ではないが後ろに数字がない場合は、スペースをダッシュに置き換えます。;
- 2番目の置換は、残りのスペースをセミコロンで置き換えます。
最後の行の後の2つのスペースが誤字でない場合は、2番目の置換を変更して、隣接するすべてのスペースを単一のセミコロンに置き換える必要があり50
ます。s/ +/;/g