68user's page 掲示板

Prev< No. 4466〜4470> Next  [最新発言に戻る] [過去ログ一覧]
No. 4466 # 68user 2006/01/11 (水) 16:28:01
>>4465 68user
> と思ったのですが、最終行が出ません。
あー、ループ部分がサブシェルになってるからか。
    while read -r line; do
        ...
    done < file.txt
なら OK ですね。

やはり sh でプログラムなんて書くもんじゃないと思う。誰か
      Sh Programming Considered Harmful
を書いてください。

No. 4467 # 68user 2006/01/11 (水) 16:36:25
>>4466 68user
補足。Solaris の sh では
> while read -r line; do
> done < file.txt
でもダメなようですね。

http://blog.goo.ne.jp/cars-kitahefu/e/4190a337427d7a8cfcb5a62f515c6936

No. 4468 # 2006/01/11 (水) 21:32:54
>> 4467

ありがとうございます。

> while read -r line; do
> done < file.txt
はやはりダメでした。

while read line; do
done < file.txt
としたら上手く動きました。

また、
tmpline=`echo -n $line|sed 's/^ *//g'`
では、1行になるのですが、「-n」オプションが邪魔みたいで、上手く編集
できませんでした。

tmpline=`echo $line|sed 's/^ *//g'`
としたら上手くいきました。

No. 4469 # 2006/01/11 (水) 22:08:12
>> 4468

sed 一発で簡単にできるものなのでしょうか。

No. 4470 # zsh 2006/01/11 (水) 23:19:40
>>4469
完璧ではないですが、こんな感じで。
------
sed -e '/^[^ ]\{1,\}/ {
        N
}
s/^\([^ ]\{1,\}.*\)\n \{1,\}\([^ ]\{1,\}\)/\1\2/g' file.txt
------

>>4468
>while read line; do
>done < file.txt
>としたら上手く動きました。

これだけで動きますか?
whileの前に
exec 0<file.txt
とか要りませんでしたっけ?

>>4466 68user
>やはり sh でプログラムなんて書くもんじゃないと思う。誰か
> Sh Programming Considered Harmful
>を書いてください。

私は、どの程度の事までをシェルスクリプトでやるべきか悩みます。
Perlとか使った方が絶対に効率が良かったりするのに、
何故かシェルスクリプトにこだわる人とかいるし・・・
(で、気がつくと自分以外に判らないスクリプトが出来上がっていると。)

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