[前の記事]« 複数ディレクトリ下のファイルの存在チェック
[次の記事]この掲示板で使えるHTMLタグ »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「文字列の操作」索引へ

データファイルの各行末に文字列を追加したい

697.
CSVファイルの加工方法
2004年08月02日(月) 21時31分
まつ
いつもお世話になっております。

WinNT4.0SV SP6a の環境において
テキストファイルの中身を加工するバッチファイルを作成
しようとしています。

TBL01_01.txt ~ TBL08_09.txt という72個のタブ区切りの
CSVファイルがあります。中にはゼロバイトのものもあります。
TBL01*の9ファイルを結合してTBL01というOracleTableにロード
して、TBL02以降も同様にロードします。

TBL01テーブルの最後の項目に「_01」という区分をセット
したいのですが、CSVには含まれていません。

そこで、、
ゼロバイトでないファイルを対象に上記区分を追加したいの
ですが、バッチコマンドで可能でしょうか?

よく知らないのですがawk?をインストールすれば或いは可能
なのでしょうか?

(例)
------------TBL01_01.txt------------------
--5項目目にブランク(null)が入っています--
------------------------------------------
aaa bbb ccc ddd (null)
eee fff ggg hhh (null)
iii jjj kkk lll (null)
------------------------------------------

------------希望加工結果------------------
aaa bbb ccc ddd _01
eee fff ggg hhh _01
iii jjj kkk lll _01
------------------------------------------

以上、宜しくお願い致します。
699.
Re:CSVファイルの加工方法
2004年08月03日(火) 05時17分
oo
>------------TBL01_01.txt------------------
>--5項目目にブランク(null)が入っています--
>------------------------------------------
>aaa bbb ccc ddd (null)
>eee fff ggg hhh (null)
>iii jjj kkk lll (null)
>------------------------------------------

(null)とはそういう文字列でしょうか?それともx'00'というNUL文字なんでしょうか?"(null)"という文字列なら下記のように簡単ですが、NUL文字を含んだファイルは、バッチでは困難でしょう。awkなら出来ます。

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%A in (TBL01_01.txt 中略 TBL01_09.txt) do (
 set AA=%%A
 set BB=!AA:^(null^)=_01! 
 echo.!BB!>>TBL01
)

あと、CSVは、Comma Separated Value なのでタブ区切りだとCSVとは言いません。“タブ区切りファイル”とでも言うのでしょうか。
702.
Re2:CSVファイルの加工方法
2004年08月03日(火) 11時08分
まつ
ooさん、おはようございます。

>(null)とはそういう文字列でしょうか?それともx'00'というNUL文字なんでしょうか?"(null)"という文字列なら下記のように簡単ですが、NUL文字を含んだファイルは、バッチでは困難でしょう。awkなら出来ます。

""(空の状態)のことをnullと言っています。
Oracleでは hoge=""とは使わずhoge is nullと使います。

本来の?(御指摘有り難う御座います)CSVで表現するなら
"aaa","bbb"","ccc","ddd",""
というデータなのです。

ちなみに現在はタブ区切りデータですが、CSVデータで
TBL01_01.txtを作成する事も出来ます。

お薦め?のawkの在処やawkでどのように記述すれば実現
出来るのかヒントでも構いませんので教えていただけない
でしょうか。

以上、宜しくお願い致します。
711.
Re3:CSVファイルの加工方法
2004年08月04日(水) 02時51分
oo
>ooさん、おはようございます。

>>(null)とはそういう文字列でしょうか?それともx'00'というNUL文字なんでしょうか?"(null)"という文字列なら下記のように簡単ですが、NUL文字を含んだファイルは、バッチでは困難でしょう。awkなら出来ます。

>""(空の状態)のことをnullと言っています。
>Oracleでは hoge=""とは使わずhoge is nullと使います。

>本来の?(御指摘有り難う御座います)CSVで表現するなら
>"aaa","bbb"","ccc","ddd",""
>というデータなのです。

ヌルストリングと言うことですね。と言うことは、ファイルは最後のタブの直後に改行があると言う事でしょうから、早い話が行末に _01 を追加するだけなので、もっと簡単で、

@echo off
for /f "delims=" %%A in (TBL01_01.txt TBL01_02.txt
 TBL01_03.txt TBL01_04.txt TBL01_05.txt TBL01_06.txt
 TBL01_07.txt TBL01_08.txt TBL01_09.txt) do echo %%A_01>>TBL01
712.
Re4:CSVファイルの加工方法
2004年08月04日(水) 17時21分
まつ
ooさん、ラシャンさんこんにちは。

皆さんのおかげで希望通りの結果を得る事が出来ました!!
めちゃめちゃ嬉しいです!

タブ区切りでも問題なく生成出来ました。
本当に有り難う御座いました。m(_ _)m
今後とも宜しくお願い致します。

----------------------------------------------------
for /f "delims=" %%A in ('dir /b %1_*.txt') do (
set param=%1
set fname=%%A
call :TEXT_EDIT
)
・・(後続処理)・・
:TEXT_EDIT
set bumon=%fname:~8,2%
set nengt=%fname:~11,6%
for /f "delims=" %%B in (%fname%) do echo %%B%bumon% %nengt%>> %param%.dat
----------------------------------------------------
 
 


カテゴリー「文字列の操作」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年08月02日 08:47に投稿されたエントリーのページです。

ひとつ前の投稿は「複数ディレクトリ下のファイルの存在チェック」です。

次の投稿は「この掲示板で使えるHTMLタグ」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート