初めて質問させていただきます。
Perlを使って下記のことをじっそうしたいと思っています。
□テーブルから抽出したdata.csvの中に、外字文字コードが存在するか確認する。もし存在する場合は、その行を別のファイル(output.csv)へ出力する。
Perlで下記のような構造でプログラミングしたいと思っていますが、知識が乏しいため、どなたかサンプルコードをご提供いただけますでしょうか。
□外字文字コードをもつtest.txtを一行ずつ読み込み、そちらを検索キーとして、data.csv内をgrepし、該当行があったら、output.csvへ出力する。
test.txt
\x40\xB0,
\x41\xB1,
\x43\xB2
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
そもそも、そのテキストファイルがどのような文字コードで作成されているかによってスクリプトは変わります。
外字をどの範囲にするか、例えばUNICODEの場合は、ギリシャ文字やハングル、アラビア文字を外字とは扱いませんが、Shift_JISの場合は外字に含めないとまずいでしょう。
open でファイルを開いて
while(<IN>){}などで一行ずつパターンマッチを行い。
>もし存在する場合は、その行を別のファイル(output.csv)へ出力する。
存在すれば、その行を、新しいデータに追記する。
質問と、出力形式がマッチしませんね。その文字だけでしたら、全体を一行として文字を探さないとならないです。そちらのほうが厄介です。一文字一文字の区切りを判断しなければならない。文字境界の判別は意外と厄介です。半角文字、制御文字、全角文字を区別しないとどこまでが一文字か分からない。
最後に、OUTでファイルに書き出せばよい。
この回答への補足
ご回答、ありがとうございます。
遅くなって申し訳ございません。
また、私の質問内容がわかりづらいようですみません。
Shift-Jisの範囲です。また、外字文字コードの範囲は決まっており、外字文字コードを持つリストファイル(test.txt)はすでに用意されているものとして考えていただければと思います。
また、今回Perlのプログラム知識が乏しいため、
今回の要望を実現するためのプログラムコードでのご回答いただけると嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perl 時間同士の差
-
正規表現で"-" "0-9"以外を削除...
-
自動更新
-
perlでcsvの出力について
-
Perl<->Oracle間での文字化けに...
-
perlでの文字列抽出
-
VBAで巨大なファイルの途中から...
-
バッチファイルの作り方(CSV→...
-
ファイル出力をUTF8Nではなくて...
-
ファイル名を複数個配列で確保...
-
ADOによるCSVファイルからのデ...
-
fopen64について
-
<br />と<p></p>の使い方
-
VBA テキストファイルを読み取...
-
ExcelをCSV書き出す場合のシー...
-
画像をバイナリデータに変換す...
-
メールアドレス登録の重複をチ...
-
HTMLのフォームで画像と文...
-
Perlで特定文字列から特定文字...
-
Perlで特定行から特定行までを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
エクセルVBAで素数だけを出力す...
-
sprintfについて
-
教えて!perlから.exeファイル...
-
Perlでファイルの末尾から指定...
-
重複するデータを抽出できる秀...
-
ファイル出力の改行コードをLFに
-
CGIから外部コマンド実行時の標...
-
timeコマンドの結果をテキスト...
-
log2の「正確な」計算方法
-
sprintfで10進数を桁数指定で16...
-
Perl<->Oracle間での文字化けに...
-
機器のI/OをArduinoでSDに記録...
-
バッチファイルで、記号を含む...
-
テキストファイルから日本語部...
-
Perl中で teeを使っても戻り値...
-
perlでの出力先設定
-
htmlから、ファイル、もしくはC...
-
標準エラーと標準出力をファイ...
おすすめ情報