• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:awkでのファイル読み込み)

awkでのファイル読み込み方法について

このQ&Aのポイント
  • awkを使用してファイルを一行ずつ読み込み、処理する方法がわかりません。
  • 以前にkshとawkを使用してCSVファイルを処理した経験がありますが、記憶が曖昧でうまくいきません。
  • サンプルソースコードや参考資料など、ksh+awkを使用したファイル読み込みの方法について教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

現状で、何がどう「うまくいってない」のですか? > フィールドセパレター変更 -F"," でカンマに変更されています。 > CSVファイルを一行ずつ読み込み > 各処理をしたいです 何も設定しなければ、自動的に一行読んで処理を繰り返します。 一般的な処理は 条件(省略可能) {実行する内容} という書式です。 例えば awk -F',' '{print $1}' input.csv だと、input.csvを一行ずつ読み込んで、カンマ区切りの最初のフィールドが出力されます。 入力ファイルの内容によっては、期待した動作をしないかもしれません。 例えば、ファイルには日本語が使われていて、awkがマルチバイト文字に対応していない、とか。 また、kshのスクリプト中に $1 を使っていますが、指定したファイル名に空白等があると、期待した通りに動作しないでしょう。 余談) > シェルを作成しています 「シェル」といったら、kshとかbashとかそのものを指します。 あなたが作っているものは「シェルスクリプト」と言います。 > # Check File Exist > ls $1 >/dev/null 2>&1 > if [ $? -ne 0 ];then こんな複雑な方法を使わなくても、ファイルの存在を確認できます。 man test をよく読んでみましょう。 あるいは、 man ksh として「条件式」「Conditional Expressions」を読みましょう。 手許のman kshより > -e file > True, if file exists. > -f file > True, if file exists and is an ordinary file.

bauzoux
質問者

お礼

回答ありがとうございました。 数年ぶりに作るもので、今の自分には難しいと思いました。 awk処理は諦めて、別の方法を考えます。

関連するQ&A