for line in `cat $1`
do
eval col1[$count]="`echo ${line} |cut -d, -f 1 `"
eval col2[$count]="`echo ${line} |cut -d, -f 2`"
eval col3[$count]="`echo ${line} |cut -d, -f 3`"
eval col4[$count]="`echo ${line} |cut -d, -f 4`"
eval col5[$count]="`echo ${line} |cut -d, -f 5`i"
eval col6[$count]="`echo ${line} |cut -d, -f 6`"
eval col7[$count]="`echo ${line} |cut -d, -f 7`"
eval col8[$count]="`echo ${line} |cut -d, -f 8`"
eval col9[$count]="`echo ${line} |cut -d, -f 9`"
eval col10[$count]="`echo ${line} |sed -e 's/\r//'| cut -d, -f 10`i"
count=`expr $count + 1`
done
上記のようにbashで、変数に文字列を格納しています。
()が付いている場合、うまく格納できないようで下記のようなエラーが出ます。
./create_cate.sh: eval: 行 32: 予期しないトークン `(' 周辺に構文エラーがあります
./create_cate.sh: eval: 行 32: `col1[3]=DP鋼シリーズ(ツバ付)'
どのように対応すればよろしいでしょうか。
また、文字列にスペースが入っているものもあります。
コチラについてもうまく格納できないようです。
どなたかご教授お願いできませんでしょうか。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
スペースが入った文字列が処理できない理由は、下記で line に格納される文字列が、スペースで区切った1つ目だからです。
for line in `cat $1`
下記のように、1つ目、2つ目、3つ目を i j k に分けて格納するのが、本来の使い方です。
for i j k in `cat $1`
for 文を使った解決方法があるのか私は知りませんが、while 文に変更したら解決します。
while read line
do
done < $1
No.1
- 回答日時:
そもそも、eval は必要ないと思います。
eval を消せば動きます。
eval を消さないなら、下記のように " で囲めば動きます。
eval "col1[$count]=\"`echo ${line} |cut -d, -f 1`\""
回答ありがとうございます。
eval "col1[$count]=\"`echo ${line} |cut -d, -f 1`\""で()を含む文字列を格納する事ができました。
もしよろしければご教授ください。
スペースが入った文字列を格納しようとするとスペース以降がうまく可能出来ないようです。
例えば、${line}が下記のような場合、、、
2017102005195400000002542,2017102005195400000002541,Wooden Buffetware,,1,1,1,1,ct00855,N,
+ for line in `cat $1`
++ echo 2017102005195400000002542,2017102005195400000002541,Wooden
となり、途中で切れてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- その他(プログラミング・Web制作) -sオプション 1 2022/06/06 12:49
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
このQ&Aを見た人はこんなQ&Aも見ています
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのファイル形式を変更して...
-
Microsoft 365 の購入の誘いが...
-
WindowsからSSHでサーバーにあ...
-
マイクロソフトから通知メール...
-
自作pcについて
-
MF-COBOL COBOL 違い
-
exeファイルの実行結果をテキス...
-
44歳でIT業界への転職
-
ChatGPTを使って思い通りサイン...
-
複数ファイル名の一括変更について
-
バッチファイルで特定のファイ...
-
bashでコマンドが見つかりませ...
-
pipインストール時にプロトコル...
-
Windowsバッチファイルでリモー...
-
時間給の計算方法をお教えください
-
これって、開発者に使用許可を...
-
LINEのグループの背景ってLINE...
-
Excelマクロでウェブ上から現在...
-
詳細設計書に次は、記載すべき...
-
エクセル VLOOKUP ほかのエクセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
44歳でIT業界への転職
-
Python CSVファイルについて
-
MF-COBOL COBOL 違い
-
WindowsからSSHでサーバーにあ...
-
Microsoft 365 の購入の誘いが...
-
自作pcについて
-
プロダクトキー
-
マイクロソフトから通知メール...
-
バッチファイルで特定のファイ...
-
Windowsバッチファイルでリモー...
-
三菱 Got 1000
-
bashでコマンドが見つかりませ...
-
三菱のデバイスネットユニットQ...
-
画面設計と帳票設計の違いを教...
-
試用期限付きアプリの使用期間...
-
おんどとりWebStorage APIから...
-
なにこのQRコード?!!
-
【至急】.htaccessによるディレ...
-
Windows serverでマルチキャス...
-
bashで変数に()を含む文字列を...
おすすめ情報