- - PR -
○行ずつ処理したい!!
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-07-30 17:37
トーヤです。
例えば以下のファイルを、3行ずつ読み込んで それを加工するようなシェルスクリプトを 作成したいのですが、何かいい方法はありますか? ----------------- 111111 222222 333333 aaaaaa bbbbbb cccccc ZZZZZZ YYYYYY XXXXXX 555555 666666 777777 ----------------- | ||||
|
投稿日時: 2003-07-30 18:37
ちょっとややこしいですが、こんなカンジはダメですか?
ファイルnumから3行ずつ取り出してnum_[1-4]に書き込むんですが。 #!/bin/sh COUNT=1 flag=1 for line in `cat num` do echo $line >> num_$COUNT flag=$(($flag+1)) if [ $flag -gt 3 ] ; then COUNT=$(($COUNT+1)) flag=1 fi done どちらかといえば初心者に近いので、僕にもご指導を! 行数の指定が出来るように変更しないといけないかな? [ メッセージ編集済み 編集者: francis 編集日時 2003-07-30 18:38 ] [ メッセージ編集済み 編集者: francis 編集日時 2003-07-30 18:39 ] | ||||
|
投稿日時: 2003-07-30 21:16
ども。raccoonです。
読み込んだ3行に対してどういう加工をしたいかにもよりますが・・・。 わたしならとりあえずawkですかね。
'print STR'の部分にやりたい処理を書きます。 パイプやバッククォートを使って,awk以外のところで やりたい処理をさせてもいいでしょう。 基本的にシェルスクリプトでは1行ずつしか処理してくれないので, たいていの場合は『1行ずつ読んで,3回目だけ処理をする』 ということになるでしょう。 # francisさんの方法もそうですね。 sedあたりで3行ずつ読ませることもできるとは思いますが, かなりムリヤリな方法になりそうな気がします。 # 識者ならキレイに作れるのかなぁ? | ||||
|
投稿日時: 2003-07-30 22:06
paste を使えば一発です。
|
1