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

ちょっとここに質問していいものか迷いましたが、
このカテゴリで質問させていただきます。

UNIXのCシェルで、あるシェル変数に1行分のデータが
読み込まれていて、これをいくつかのデータがタブ
区切りで入っています。

これを違う複数の変数に各データを切り分けて入れた
いのですが、どうしたらいいかわかりません。
awkやsedという手を考えたのですが、あれはファイルから
読み込むので、できませんでした。

わかる方がいらっしゃればよろしくお願いします。

A 回答 (3件)

例えば変数wholevalueに


set wholevalue = 'Monroe female actress'
という具合に入っていたとします。
この時、
set eachvalue = `echo $wholevalue`
とすると、(シングルクォートとバッククォートの違いに注意)
eachvalueは変数の配列になります。
set name = $eachvalue[1]
set sex = $eachvalue[2]
set occupation = $eachvalue[3]
とすると、$name, $sex, $occupation に、Monroe, female, actress が
それぞれ入ります。
    • good
    • 0
この回答へのお礼

なるほど、配列みたいな定義が、cshにはできるんですね・・・
やってみます、ありがとうございました。

お礼日時:2001/09/17 15:46

foreach を使って配列に入れることもできます。


ご参考までにどうぞ

#!/bin/csh

set xxx="a b c"
set yyy

# xxx をひとつずつ取り出して、yyy に追加する
foreach zzz ($xxx)
set yyy=($yyy $zzz)
end

# 出力してみてチェック
# 配列は 1 番目から入っています
@ i = 1
while($i <= $#yyy)
echo $j $yyy[$i]
@ i = i + 1
end
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
自分が実際にやりたい処理とかはファイルが絡んでくるんで、ちょっと前記の例は難しいですが、こういうのもあるんですね。ありがごうございます。

お礼日時:2001/09/17 15:48

変数valueにデータがあるとして


value2=`echo $value | awk '{print $1}'`
とかで出来ると思いますよ
echoは標準出力に出力しますのでパイプを使って標準入力からawkにデータを
渡し、加工した結果を別の変数へ代入。
他にも色々やり方があると思いますけど取りあえずこんな感じでどうでしょう?
    • good
    • 0

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