アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
毎日データを取得し、結果をcsvファイルに書き込みしていくようなkshのスクリプトを作成中です。

例えばスクリプトで以下のように毎日実行していくと
echo "AAAA" >> file2009_04.csv
echo "BBBB" >> file2009_04.csv
echo "CCCC" >> file2009_04.csv

file2009_04.csvファイルには
AAAA
BBBB
CCCC
と縦方向のセル(A列)に書き込まれます。

これを以下のように横方向に(A1,B1,C1)書き込まれるようにする方法はありますか?
AAAA | BBBB | CCCC | (←"|"はセル区切りのつもり)

というのも書き出す部分がAAAAなんていう単語ではなく何十行もあるコマンド結果であり、A列に延々と書かれると追えなくなってしまうのです。
なので今はcsvが出来たらexcelで開いて、切り貼りして横に追加しています…
一ヶ月後にファイルを見たら、手でexcelを集計しなおすことなく、ざっとデータの推移がわかるようなものを作りたいです。
ご存知の方、よろしくお願いいたします。

A 回答 (4件)

「何十行もあるコマンド結果」全体を 1行にしたいなら read なんかを使えばいけると思う. 例えば


(line=''; while read l; do line="$line,$l"; done; echo $line)
でいいのかな?
    • good
    • 0
この回答へのお礼

ありがとうございます。
ちょっと試してみましたが、面白い表現ができそうですね。
一日分のコマンド結果を横一行にまとめて、翌日は二行目に追加という発想ですよね?

コマンド結果自体は(lsやdfの結果)一行にまとめなくてもよさそうなのですが、これだとcsvでA1,B1,C1…に横に追加することは難しいんでしょうかね~;

お礼日時:2009/04/14 13:20

えぇと, 「コマンド結果自体は一行にまとめなくてもよさそう」っていわれてもねぇ.... もともとの例では「横方向に書き込まれるようにする」って書いてあるでしょ? これを普通に解釈したら「1行にまとめる」以外の何物でもないような気がする. ということで, 「本当はどうしたいのか」が分からないと, ちょっと何ともならないですね.


ああ, 「横に追加する」のは手間がめちゃくちゃかかりそうなのでパス. よほどうまく作らないとバグの温床にしかならないような気がする. 「行を追加する」という仕様にして, 最後の表も全体で縦と横を入れ替えるだけでいいじゃん.
もしくはデータベースに突っ込む?
    • good
    • 0

>ですがunix画面の表示ではなく、csvファイルで開いた際に横列に追加していけるようにしたいのです。



「unixの画面」とは何のことでしょうか?

>結果をcsvファイルに書き込みしていくようなkshのスクリプトを作成中です。

とお書きだったので、csvファイルに追加書き込みする回答を書いたのですが。
「開いた際に横列に追加」とお書きですが、ファイルを開いた際にコマンドを実行するというのは意味不明です。コマンド実行時点で出力をファイルに追加していけばいいのでは?
    • good
    • 0

echo で改行したくないのなら、


echo -n "AAAAA" "|" >> file2009_04.csv
echo -n "BBBBB" "|" >> file2009_04.csv
echo "CCCCC" >> file2009_04.csv

この回答への補足

ありがとうございます。
ですがunix画面の表示ではなく、csvファイルで開いた際に横列に追加していけるようにしたいのです。

補足日時:2009/04/14 13:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!