• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perl 先頭行に追加)

Perlで配列にデータを追加する方法は?

Wap58の回答

  • ベストアンサー
  • Wap58
  • ベストアンサー率33% (29/87)
回答No.2

ファイルを配列に読み込み 配列にunshiftで値をのっけて そのまま配列をファイルに書き込む open FILE,'./data/xxx.txt'; @ddr = <FILE>; close FILE; unshift @ddr,"$date,$cont\n"; open FILE,'>./data/xxx.txt'; print FILE @ddr; close FILE; なにかいろいろ処理するなら open FILE,'./data/xxx.txt'; while($temp = <FILE>){ chomp $temp; @temp=split(/,/,$temp); なにか処理 ###push(@ddr,"$temp[0]","$temp[1]"); これだと$temp[0]と$temp[1]が順番に代入される 見づらいけどコンマとまとめて代入するなら""で囲む push @ddr,"$temp[0],$temp[1]\n"; } close FILE; ###seek(@ddr,0,0); unshift @ddr,"$date,$cont\n"; open FILE,'>./data/xxx.txt'; ###$new=join(",",@ddr); ###print FILE $new; print FILE @ddr; close FILE;

spider32
質問者

お礼

ありがとうございます。目的としていた結果が得られました。 ""で纏めて代入すれば良いんですね! 大変助かりました。

関連するQ&A

  • ファイルの先頭に文字を追加するには?

    ファイルの先頭に文字を追加するにはどうしたらよいでしょうか? ファイルの末尾に追加するなら echo 追加する文字列 >> ファイル名 でオッケーですが、 先頭に追加する方法が、単純そうなのに、調べても分かりませんでした。 例えば test.txt の中身が以下で、 aaa bbb # echo hello >> test.txt で aaa bbb hello となりますが、 hello aaa bbb とするには、どうしたらよいでしょうか。 単純なコマンドはあるでしょうか。

  • PERL カンマ区切り 一致行削除

    教えてくださいm(_ _)m 最初に目的を書きます・・・ ~test.txt~ 1,aaa,eee,ttt 3,eee,eee,yyy 5,ttt,yyy,eee 2,yyy,bbb,qqq ↓ 5,ttt,yyy,eee 2,yyy,bbb,qqq ~~~~~~~~~~ 例1)、カンマ区切り3列目が「eee」 の行を全て削除(完全一致) 例2)、カンマ区切り3列目が「e」を含む 行を全て削除(部分一致) というふうにしたいのですが、 どのようにするのかわからないです・・・ 現在下記のように とりあえず1行目(0番目)を削除するとこまできました。 #! /usr/bin/perl $TEST = 'test.txt'; open(FILE, "<$TEST"); eval{ flock(FILE, 1) }; @DATA = <FILE>; close FILE; $NO = 0; splice @DATA, $NO, 1; open(FILE, ">$TEST"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE;

    • ベストアンサー
    • Perl
  • 複数行になっている文字列を検索したい

    PERL初心者です。 以下、テキストに複数行になっている箇所の2行目の「BBB」を検索キーとして 3行目の「CCC」を取得したいのと2行目、3行目を1レコードにしたいのですが できません。 test.txt ---------------------------------- 1. AAA BBB CCC DDDD 2. AAA BBB 3. CCC DDDD 4. AAA BBB CCC DDDD ----------------------------------- 以上よろしくお願いします。

  • CSVからtxtに変換してのですが、ある行を境にちゃんとできない。

    (前置き) Outlook Express(以降OE)のアドレス帳をNOTESのアドレス帳にImportするときに、まず最初にOEのアドレス帳をExportします。 できたのがCSVファイルです。 このCSVファイルを拡張子を変更してtxtファイルに変更する必要があるので、そうしました・・・。 (症状) このtxtファイルですが、ある行から(具体的にはアドレス帳の16行目の人)から、",(コンマ)"が出なくなりました。 具体的には、 ,,,xxx@xxx.co.jp,,,,,,,,,,,,,,,,,,,,,,, が正しいのですが、ある行を境にして、 ,,,xxx@xxx.co.jp となってしまいます。 すごい不思議です。 手動でこのコンマを打てばいいのですが、なんせ600人分が後者になっていますので、かなり大変なんです。 なぜコンマがなくなるのでしょうか?どなたか教えて下さいませ。

  • 【シェル】複数の行の列を1行で表示したい

    お世話になります。 掲題の件で質問します。 現在、Linux上でシェルの開発を行っています。 処理としては、テキストファイルを読み込んで、各行の先頭列 のみ1行で表示させるものなのですが、望みの状態が得られません。 何か良い方法はないでしょうか。 有識者の方がいらっしゃれば、アドバイス願います。 ○試したこと grep を試したのですが、1行で表示されてしまいます。 # テキストデータの形式 1行目 AAA aaa 2行目 BBB bbb 3行目 CCC ccc # 望みの状態 AAABBBCCC 環境 Linux

  • perlを使ったファイルの入出力について

    perl 初心者です。 perl を使ってデータ整理を試みていますが、方法がわからなくて困っています。 やりたい操作は、 1、ディレクトリ内にある特定の拡張子をもつすべてのデータファイルを読み込む 2、データソート 3、データファイル名を変更せずに、ソートしたデータを出力する 例 ディレクトリに以下のデータファイルがあるとします aaa.data bbb.data ccc.data : zzz.data これらのデータファイルをすべて読み込み、中身を整理した後に aaa.txt bbb.txt ccc.txt : zzz.txt となるように、それぞれのデータの名前を変更せずに出力したいと思っています。 スクリプトのサンプルなんかがあればありがたいです。

    • ベストアンサー
    • Perl
  • EXCELで行の先頭データが同じ行の削除方法について

    EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか?  AAA   AAA  AAA  AAA  AAA  BBB  BBB  BBB  CCC  DDD  DDD  DDD  DDD 上ようのなデータで重複している部分を削除し、  AAA  BBB  CCC  DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?  

  • perlでファイル内を検索

    perlでファイル内を検索して読み込みを行いたいのですが どのようにすればよいでしょうか。 環境は、Solaris10 以下のようなファイル(test.txt)から  #start1~#endの間にある、”01:”で始まっている値をすべて取得する。  複数行になっている場合、カンマで1つにする。  ”01”ではじまっていないものは無視する。#などで始まっているものも。 ●ファイル:test.txt #start1 01:abc,aaa,bbb 01:1234 #01;a1,b1,c1 02:(省略) 03:(省略) #end #start2 01:(省略) 02:(省略) 03:(省略) #end #start4 01:(省略) 02:(省略) 03:(省略) #end ●結果 abc,aaa,bbb,1234 として読み込みたい。

  • PHPで変数から1行目だけを取得したい

    変数に格納されたデータの1行目のaaaだけを取り出す方法を教えてください。 ※データはWEBサイトのURLリストで常に変動します。 複数行のデータ(\n区切り) 例) aaa   bbb   ccc 又は1行の半角カンマや半角スペースなどの文字で区切られたデータ 例) aaa, bbb,ccc,    aaa bbb ccc 上記のどちらかの形式で変数$dataに格納が可能です。 この$dataに格納されたaaaだけを取得するにはどうしたらいいのでしょうか? PHP初心者のためプログラムソースを書いていただけると助かります。

    • ベストアンサー
    • PHP
  • 複数行書き込むにはどうしたら良いのでしょうか?

    <?php exec("sh -c 'echo \"aaa\" > write.txt'", $result); ?> で、ファイルにaaaと書き込めるようですが、 このようなシェルをexec、system関数から実行する方法で、aaaではなく、 aaa bbb ccc と複数行のデーターをファイルに書き込みたい場合は、どのようにしたら良いのでしょうか?

    • ベストアンサー
    • PHP