68user's page 掲示板

Prev< No. 5040〜5059> Next  [最新発言に戻る] [過去ログ一覧]
No. 5040 # あきもと 2010/01/18 (月) 23:55:19
Bシェルで、whileとreadを使ったファイルからの読み込み
について教えてください。

while文の中の変数をwhile文の外で使いたいのですが、
以下の様に、whileとreadを使ってファイルから読み込み
doをdoneの間で処理を行い、ループを抜けた後、doneの
後ろで、結果を表示させたのですが、正しく表示されません。

どうしたら正しく表示されますか。

環境
    Solaris8
    Bシェル

---------------------------------------------------------
#!/bin/sh
#

num=0

while read line ; do
        echo $line
        num=`expr $line + $num`
done < a.txt

echo "-----"
echo $num


cat a.txt
1
2
3
4
5
6
7
8
9
10

No. 5041 # おう 2010/01/19 (火) 01:28:56
Bシェルで、sedを使って、2行を1行にしているのですが上手く行きません。

改行している次の行で、半角スペースから始まっている行を、sedを使って
1行にしたいのです。

sed -e ':loop' -e '$b' -e 'N;/\n /{s/\n *//;b loop' -e '};P;D;b loop' file.txt

としたのですが、最初に引っかかったのは、1行になるのですが、
それ以降のものは、1行になりません。

環境
    Solaris8
    Bシェル

内容
---------
[Fri Jan 1 00:00:00] 開始
[Fri Jan 1 00:00:00] INFO:あいうえお
  abcdefg
[Fri Jan 1 00:00:00] INFO:あいうえお
    1234567890
[Fri Jan 1 00:00:00] INFO:あいうえお
                    aaaaaaa bbbbbb cccccc
[Fri Jan 1 00:00:00] INFO:あいうえお
        ABC 1234
[Fri Jan 1 00:00:00] INFO:12345
[Fri Jan 1 00:00:00] INFO:ABCDE
[Fri Jan 1 00:00:00] INFO:あいうえお
[Fri Jan 1 00:00:00] 終了

期待する結果
----------
[Fri Jan 1 00:00:00] 開始
[Fri Jan 1 00:00:00] INFO:あいうえお abcdefg
[Fri Jan 1 00:00:00] INFO:あいうえお 1234567890
[Fri Jan 1 00:00:00] INFO:あいうえお aaaaaaa bbbbbb cccccc
[Fri Jan 1 00:00:00] INFO:あいうえお ABC 1234
[Fri Jan 1 00:00:00] INFO:12345
[Fri Jan 1 00:00:00] INFO:ABCDE
[Fri Jan 1 00:00:00] INFO:あいうえお
[Fri Jan 1 00:00:00] 終了

実際の結果
---------
[Fri Jan 1 00:00:00] 開始
[Fri Jan 1 00:00:00] INFO:あいうえお abcdefg
[Fri Jan 1 00:00:00] INFO:あいうえお
    1234567890
[Fri Jan 1 00:00:00] INFO:あいうえお
                    aaaaaaa bbbbbb cccccc
[Fri Jan 1 00:00:00] INFO:あいうえお
        ABC 1234
[Fri Jan 1 00:00:00] INFO:12345
[Fri Jan 1 00:00:00] INFO:ABCDE
[Fri Jan 1 00:00:00] INFO:あいうえお
[Fri Jan 1 00:00:00] 終了

となります。
期待する結果を得たいのですが、どうすればよいですか。

No. 5042 # zsh 2010/01/21 (木) 17:14:43
>>5040 あきもと
>>4776 zsh
を参照してください。

>>5041 おう
sed -e '$!N; s/\n \{1,\}//; P; D' file.txt
でどうでしょうか?

No. 5045 # h.maruwa 2010/01/23 (土) 03:47:25
管理人さんへ
『User-Agent 統計』のページ
(http://x68000.q-e-d.net/~68user/cgi-bin/view-browser.cgi)
が『エラー : 内部エラーが起こりました。』となっているので
お知らせします。

No. 5047 # あきもと 2010/01/23 (土) 17:10:34
>>5042 zsh

ありがとうございます。
教えて頂いたところに書いてある方法で
上手くいきました。

No. 5048 # おう 2010/01/23 (土) 20:18:10
>>5042 zsh

ありがとうございます。
上手くいきました。

No. 5049 # ボンジー 2010/01/26 (火) 20:30:18
はじめまして。ボンジーと申します。ハッキングのやり方を教えてください。しーローとなもので

No. 5056 # Misaki [URL] [E-mail] 2010/02/14 (日) 21:05:38
いつもUNIXコマンドでお世話になっています。

画像変換のconvertコマンドについてお伺いしたいことがあります。

私は今、趣味でサイトを作っています。
画像アップロードした際にGIFからjpgに変換させる処理にconvertを使っているのですが、
ファイル名の拡張子は.jpgになっているのですが、バイナリエディタで開いて確認するとGIFファイルのままです。

convertはImageMagickダウンロードしてきて新規インストールしたものです。

このページではGIFからJPGへの画像変換を紹介されていたのですが、
私のところと同じような現象がおこっていませんでしょうか。
http://x68000.q-e-d.net/~68user/unix/pickup?keyword=convert&target=command

No. 5057 # 68user 2010/02/15 (月) 16:38:19
>>5056 Misaki
そういう事象は聞いたことがないですが、ありうることとしては
libjpeg のリンクがうまくいっていない、でしょうか (それにしても
エラーが出るのではないかと思うのですが)。

変換前後のファイルを file コマンドで調べても、やはり gif でしょうか?

No. 5059 # Misaki [E-mail] 2010/02/16 (火) 16:13:19
>> 5057
早速、回答ありがとうございます。
fileコマンドでgifかどうか判別できるんですね!
やってみたところGIFでした。

簡単に調べてみましたがlibjpegが上手く入っていなかったようです。
帰ったらもうちょっと詳しく調べてみます。

ldd結果
$/usr/bin/ldd /usr/local/bin/convert
                linux-gate.so.1 => (0x00110000)
                libMagickCore.so.3 => /usr/local/lib/libMagickCore.so.3 (0x00111000)
                libMagickWand.so.3 => /usr/local/lib/libMagickWand.so.3 (0x00427000)
                libz.so.1 => /usr/lib/libz.so.1 (0x0059a000)
                libpthread.so.0 => /lib/libpthread.so.0 (0x005af000)
                libdl.so.2 => /lib/libdl.so.2 (0x0056b000)
                libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00523000)
                libm.so.6 => /lib/libm.so.6 (0x00571000)
                libc.so.6 => /lib/libc.so.6 (0x005c6000)
                /lib/ld-linux.so.2 (0x0040c000)
                librt.so.1 => /lib/librt.so.1 (0x0081e000)

Prev< No. 5040〜5059> Next  [最新発言に戻る] [過去ログ一覧]