
テキストファイルを、指定した数値の倍数の行を、指定した個数に分割するバッチファイルを作成しようとしています。
例えば、以下の様な内容の「in.txt」というテキストファイルを3分割したい場合、
----- in.txtの内容 -----
1
2
3
4
5
6
7
8
9
10
------------------------
以下の様な内容で、
「out1.txt」「out2.txt」「out3.txt」として出力したいのです。
----- out1.txtの内容 -----
1
4
7
10
--------------------------
----- out2.txtの内容 -----
2
5
8
--------------------------
----- out3.txtの内容 -----
3
6
9
--------------------------
自分はプログラミングの知識がないので、WEBに書かれている構文を少し書き換えたりして試しているのですが、うまく行きません。
AWKを使い、以下のようなバッチファイルを作成して実行してみましたが、「out3.txt」だけがうまく行きませんでした。構文の意味も分からないので修正も出来ません。
awk "NR%%3==1" "in.txt" > "out1.txt"
awk "NR%%3==2" "in.txt" > "out2.txt"
awk "NR%%3==3" "in.txt" > "out3.txt"
AWKの解説ページを読み始めたのですが、時間的な猶予があまり無く、今回質問させて頂いた処理が出来るようになるまでまだ時間が掛かりそうなので、どなたかお分かりの方がおられましたお教え頂けないでしょうか。
AWKでなくとも、sedでもPerlでもその他のコマンドでも構いませんし、スクリプトファイルを読み込めるコマンドでしたらスクリプトでの書き方でも結構ですので、ご存知の方がおられましたらお教え頂けないでしょうか。

No.1ベストアンサー
- 回答日時:
perlで行います。
以下のようなスクリプトを作成してください。
--------------------------------------
@data = <>;
open(F1,">out1.txt");
open(F2,">out2.txt");
open(F3,">out3.txt");
for($i=0;$i<scalar(@data);$i++){
if ($i%3 == 0){
print F1 $data[$i];
}
if ($i%3 == 1){
print F2 $data[$i];
}
if ($i%3 == 2){
print F3 $data[$i];
}
}
close(F1);
close(F2);
close(F3);
------------------------------
このスクリプトをsample.plと名前をつけて保存してください。
名前は任意です。(他の名前でもかまいません)
in.txtがあるディレクトリと同じディレクトリに保存してください。
そしてコマンドプロンプトで
perl sample.pl in.txt
と入力してください。
そのディテクトリ下に
out1.txt,ou2.txt,out3.txtが作成されます。
ご回答ありがとうございます。
ActivePerlをインストールしてやってみました。
結果は見事に出来ました。本当にありがとうございました。助かりました。
これからプログラミングも勉強して行きます。本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- その他(プログラミング・Web制作) テキストデータ変換(プログラミング、linux、python) 8 2023/08/08 16:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで文字列の操作がしたい
-
excel 2003から VBAのreplaceマ...
-
2行の文章を1行にまとめる
-
perl の挙動について
-
どこがおかしいですか?教えて...
-
VBScriptにて、テキストファイ...
-
どなたか教えて下さい。
-
特定文字のついたレコードを改行
-
資格試験に向け、ipodで見れる...
-
「パスが見つかりません」とい...
-
バッチファイルでテキストファ...
-
perlかベクターなどのフリーウ...
-
MATLABでカーブフィットしたデ...
-
PHPコードをはじめ、記号や記述...
-
Shift-jisで正規表現
-
リストボックスから選択、結果...
-
画像ファイルの作成方法
-
ファイルの入出力2
-
foreachによるカウント方法
-
特殊文字の数を調べる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ifstream を利用した1行分のテ...
-
***.cgiの中身は第三者から見ら...
-
ファイル名を複数個配列で確保...
-
C++でのテキストファイル読み込...
-
ファイル名に日付を入れてアッ...
-
「パスが見つかりません」とい...
-
VBSの処理について
-
perlで該当する行のみ別ファイ...
-
特定のデータを更新する
-
perl での文章の取得について
-
今、「Python 3.8 32-bit」を使っ...
-
shellのコマンド deffの差分の...
-
perlで先頭の数値をみて昇順に...
-
ファイル読み込みマッチングに...
-
テキストファイルの各行を配列...
-
テキストファイルになにも入っ...
-
一行だけ読込
-
ファイル操作
-
ファイルから検索条件を読み込...
-
perlでCSVをソートする方法につ...
おすすめ情報