- ベストアンサー
ファイルの中身の操作について
今あるファイルの中身の読み込みに、 set EDPTODAY = `awk -F , '/$EDPCLND/ {print $5,$9}'` echo $EDPTODAY と書くと、構文エラーが出てしまいます。 ","区切りなので、"awk -F , "と表記したのですが・・・ ($EDPCLNDで宣言しているファイルの存在は確認しました。) お解りの方、どうお宜しくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- mph
- ベストアンサー率54% (39/72)
- punchan_jp
- ベストアンサー率55% (155/280)
- mph
- ベストアンサー率54% (39/72)
- ita3
- ベストアンサー率67% (25/37)
関連するQ&A
- ディレクトリ内の全てのファイルの中身を操作したい
ディレクトリ内に、例えば10個のテキストファイル a.txt b.txt c.txt d.txt e.txt f.txt g.txt h.txt i.txt j.txt があり、その中身にそれぞれ 2 6 98 65 4 52 98 100 82 56 という数字が書かれているとします。 これらのファイルの中身の平均をawkを用いたコマンドで表示させたいのですが、自分なりに頑張ったのですが実行できませんでした。 (cat * | awk'{BEGIN{total += $0; i += 1}END{print total/i}' のような感じで) どうすれば実行できるのか、よろしければお教えください。
- ベストアンサー
- その他(プログラミング・開発)
- Kシェルにて区切り文字の抽出について質問です。
空白区切りの最後の文字を抜き出したいのですが うまくいきません。 どのような構文にすればよいのでしょうか? cat file.txt | awk -F "" '{print (分からない。。)} 行末は $ だと思い、使用してもダメなのです。。。
- 締切済み
- Linux系OS
- csvファイルから、データをシェルで取り込みたい
前の質問 http://oshiete1.goo.ne.jp/kotaeru_vote.php3?q=4899864 他の質問コーナー http://okyuu.com/ja/question/6095 MySQLのデータベースを作成するために、csvファイルをつくって、シェルでテーブルに取り込みたいと思っています。前のスクリプトを書き直したので、新規質問という形で書かせて下さい。 【環境】LINUX Fedora10 MySQL5.0 インターネット接続できず、USBメモリでデータを運んでいる。ここのスクリプトもコピペではなく手書き。 #bash torikomi.sh とうつと torikomi.sh: line 19 : syntax error : unexpected end of file とでてきてしまい、うまく処理できません。 ひとまず、Perlなどは使わず、bashのみにて処理を行いたいと思っています。(Perlは知らない言語なので) スクリプト #!/bin/bash set hensu=`cat /home/******/data1.csv` for i in $hensu do set a=`echo $i | awk -F, '{print $1}'` set b=`echo $i | awk -F, '{print $2}'` set c=`echo $i | awk -F, '{print $3}'` mysql --user=root --password=****** db1<<EOF insert into tbl2(aaa,bbb,ccc) values($a,"$b","$c"); EOF done
- ベストアンサー
- MySQL
- csvファイルからMySQLにシェルで取り込みをしたい
【環境】LINUX Ferora10 mysql 5.0 インターネット接続できないPC(データはUSBメモリで導入可能) bash/mysql初心者 教えてgooの参考ページ http://oshiete1.goo.ne.jp/kotaeru.php3?q=2219411 mysql で db1 というデータベースに、tbl2というテーブルを作成しました。ここにcsvファイルから、データをインサートしたいのですが、うまくいきません。 これはうってみたコマンド #bash torikomi.sh エラーは syntax error near unexpected token '(' insert ~文 とかがでます。 下記にソースを貼るので間違いがあったら、教えていただけないでしょうか? #!/bin/bash set hensu='cat /home/******/data1'; for i in $hensu do set a='echo $i | awk -F, '{print $1}'' set b='echo $i | awk -F, '{print $2}'' set c='echo $i | awk -F, '{print $3}'' mysql --user=root --password=******* use db1; insert into tbl2(aaa,bbb,ccc)values(a,"b","c"); exit done できれば、バックグラウンドでMySQLを起動して、いちいちログイン/ログアウトを繰り返さず、 インサート文を打てればいいのですが。
- ベストアンサー
- MySQL
- kshでの文字列操作
以下の文字列のうち、node1,node2部分を取り出したいです。 -------------------------------------------------------- rg non-concurrent PRIMARY="node1:node2" -------------------------------------------------------- このnode1,node2の部分は0~20バイト程度で変動します。 1バイト以上あればawkなどを組み合わせることで取り出すことができると思いますが、0バイトの場合があるため扱いに困っています。 いまこちらで考えているもの(1バイト以上の場合)は以下のような記法です。 STRING='rg non-concurrent PRIMARY="node1:node2"' NODE1STR=`echo $STRING | awk -F\" '{print $2}' | awk -F: '{print $1}'` NODE2STR=`echo $STRING | awk -F\" '{print $2}' | awk -F: '{print $2}'` awkを二重にしている箇所は-Fの引数を正規表現すれば短縮できるかもしれません。 このnode1部分がゼロバイト(PRIMARY=":node2"のような状態)になっても対応できるような、シンプルな書き方はないでしょうか? よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- awkでのファイル読み込み
シェルを作成しています。 昔kshを作ってたので、ksh+awkでCSVファイル処理をしたいのですが、記憶が古く、覚えていないし、調べてもわかりませんでした。 参考になるサンプルソースや、参考になるHP等助言頂けたうれしいです。 ファイル読み込みがうまくいってないのか、getlineを使うべきなのか..。 #!/bin/ksh -x #Parameter Check if [ $# -ne 1 ];then echo "Error File Name Must Specified" exit 1 fi # Check File Exist ls $1 >/dev/null 2>&1 if [ $? -ne 0 ];then echo "Error File Not Found" exit 1 fi # Read File awk -F"," '{ フィールドセパレター変更→CSVファイルを一行ずつ読み込み→各処理をしたいです。 }' $1 宜しくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- ファイルの差分検出シェル教えてください(bsh)
ファイル1(f1)とファイル2(f2)で値が一致しないときのみ その行番号を得る方法を教えてください。 2つのファイルの行数は同じです。 例) f1の中身 100 101 902 103 104 f2の中身 100 101 102 103 104 以上の2つのファイルより3行目が不一致のため "3"を得たいです。 ちなみに私が安易に考えたものを記します。 sdiff f1 f2 | grep -n "|" | awk '{print $1}' これでは、"|"のときしか成功しません。(当たり前ですが) 環境はHP-UXでbshです。 awkは基本的なことしか知りません。 詳しいかたよろしくお願いいたします。
- ベストアンサー
- その他(OS)
- 処理結果をファイルへ・・・
set MUCHDAY = `grep $TODAY PDXFGKS.TXT` の結果を、ファイルに書き出したいのですがうまくいきません。 (MUCHDAYは内部変数です) 方法をご存じの方お教え下さい。 (尚、ディレクトリは関数の最初で移動していて、 移動した先にそのファイルを作りたいのです。 その後この様な処理をかませたいので・・・) set EDPTODAY = `more PDXFGKS.TXT | awk -F, '{print $1}'` if($HOLIDAY == "H")then echo "休日シェル作動" else echo "平日シェル作動" endif (PDXFGKS.TXTが結果内容を入れたいファイルです)
- ベストアンサー
- その他(OS)
- 以下の様なファイルの中身から重複を取り除いて表示したいのですが、
以下の様なファイルの中身から重複を取り除いて表示したいのですが、 awk 'NR==1||prev!=$0;{prev=$0}' file.txt の使い方を教えてください。 何故、重複を除いて表示できるのですが。 printなどを使っていないのに表示ができているのですか。 file.txt 以下中身 ---------------------- AAAA BBBB BBBB CCCC CCCC ----------------------- ↓ AAAA BBBB CCCC の3文字のみを出力したい。
- 締切済み
- その他(プログラミング・開発)
- VBSでファイル作成後、書き込みできない
ファイルが存在している場合は、ファイルをオープンして書き込み、ファイルが存在していない場合は、ファイルを作成後、オープンして書き込みを行わせたいと考えています。 しかし、ファイルが存在していないとき、ファイルは作成されるのですが、『エラー:800A0046 書き込みできません。VBScript実行時エラー』が出て、書き込みができません。モードをWritingにしても同じでした。 お手数をおかけしますが、ご教示いただけますようお願いいたします。 Option Explicit '■ オブジェクトの宣言 Dim objFSO Dim objFile '■ 定数の宣言 Const strFileName = "C:\VBS\TEST.TXT" '■ 定数の宣言 '// ファイル入出力モード(8:追加書き込み) Const ForAppending = 8 Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strFileName) Then WScript.Echo "ファイルが見つかりました" Else WScript.Echo "ファイルが見つかりませんでした" Set objFile = objFSO.CreateTextFile(strFileName) If IsObject(objFile) Then WScript.Echo "ファイルを作成しました" Else WScript.Echo "ファイルを作成できませんでした" WScript.Quit(1) End If End If '// ファイルのオープン Set objFile = objFSO.OpenTextFile(strFileName,ForAppending) objFile.WriteLine "2012/12/21,100,ブレーキパッド,35000"
- ベストアンサー
- Visual Basic
- ひかりTVのサービスで登録証の再発行を希望している場合、どのような手続きが必要なのでしょうか?
- ひかりTVの登録証を紛失したり破損した場合、再発行することは可能です。
- 再発行手続きにはオンラインでの申し込みが必要であり、手続きにかかる時間や費用も確認しておきましょう。
補足
補足します。 有るファイル(EDPTODAYとは別ファイル)を一行単位で読み込み (此処の部分は別なので書いていません)、 読み込み内容をEDPTODAYに格納、そしてその切り出した内容の その第5, 第9フィールドをとりだして中身を確認と言う処理を行いたくて、 こういう風に書いたのですが・・・ そうすると、上記のような処理を行いたい場合には set EDPCLND = `more PDXFGKS.TXT`(PDXFGKS.TXTの中がまだ一行しかないのでこうしています) set EDPTODAY = more $EDPCLND`awk -F , '{print $5,$9}'` で宜しいのでしょうか?