ubuntu ver9.04 上で以下のような連番(01~09)の付いたCSVファイルの4,5,11,12列目のフィールドを抜きだし区切り文字を","から空白に置き換え.datファイルにするというシェルプログラムを作っています.
たまに一部のファイルが空で出力されます.(ファイルは出力されるのですが中身がない)なぜでしょうか?
誰かご教示願います.
#!/bin/bash
passB="./data/sw0174-h13-d0-"
passA="0001"
kaku=".csv"
dat=".dat"
#echo $passB
# input file number
echo 'Please input minimum file number (ex.03)!'
read fnumin
echo 'Please input maximum file number (ex.05)!'
read fnumax
delta=`expr $fnumax - $fnumin`
echo "delta="
echo $delta
cnt=0
while [ "$cnt" -le "$delta" ]
do
echo "cnt="
echo $cnt
fpass=$passB$fnumin$passA$kaku
echo $fpass
cvtf=$passB$fnumin$passA$dat
echo $cvtf
cut -d ',' -f 4,5,11,12 $fpass > $cvtf
cat $cvtf | sed -e 's/,/ /g' > $cvtf
cnt=`expr $cnt + 1`
fnumin=`expr $fnumin + 1`
fnumin=0$fnumin
echo "fnumin="
echo $fnumin
done
No.1ベストアンサー
- 回答日時:
>cat $cvtf | sed -e 's/,/ /g' > $cvtf
パイプは同時実行されるので、cat が $cvtf から読み出すのが速いか、>$cvtf がサイズをゼロにするのが速いか競争になります。勝ったり負けたりによって、結果が変わってくる。
cat $cvtf | sed -e 's/,/ /g' > $cvtf.out
mv $cvtf.out $cvtf
どこかの本にはパイプは左から右へ実行されると書いてありましたが違うのですねいい勉強になりましたありがとうございます.
catが読むファイル名とsedの吐くファイル名を別にして試してみます.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
PHP 正規表現 数字又は数字以...
-
syntax error, unexpected 'ech...
-
PHPでcsvファイルを一覧表示す...
-
繰返しを繰り返す【php】
-
もっとシンプルに書きたいので...
-
echoとprintの違い
-
php mysql SELECT文でテーブル...
-
繰り返し処理をうまく使えない...
-
シェルで正規表現 YYYY/MM/DD
-
WIN FIXER2005
-
この条件を成立させるには
-
空文字列の扱い方
-
<? echo echo "こんにちは"; ?>...
-
PHP 九九表
-
画像ファイル(.bmp, gif, .jpg,...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
phpでcookieがうまく保存されない
-
findstrのerrorlevel
-
syntax error, unexpected 'ech...
-
小数点以下0の非表示
-
バッチファイルで、全てのウィ...
-
オブジェクトの中身の判定(PHP)
-
PHPで訪問回数を表示するカウン...
-
ゼロとNULLを区別して number_f...
-
bashの関数の引数にスペースが...
-
ナベアツプログラム(3の倍数...
-
変数の受け渡しによる画像の表示
-
PHP一覧表示した項目にリンクを...
-
Windowsのsetコマンドでの小数...
-
Parse error というエラーの対...
-
pdftkを使った処理をバッチファ...
-
DBのハッシュ化したパスワード...
おすすめ情報