
WindowsXP + gawk という環境です。
"0000000",16,"False"
"0000000",11,"False"
"0000000",4,"False"
"0000000",9,"False"
"0000000",39,"True"
"0000000",18,"False"
"0000000",39,"True"
"0000000",55,"True"
というようなファイルがあります。(0000000は任意の数字です)
3列目がTRUEで2列目が30未満のものだけ別ファイルに書き出すという処理をしたいのですが、うまくいきません。
gawk -F, '$3 == "True" {print $2}' file_name
などとやっているのですが、何も表示されません。
あとなおかつダブルクォーテーションは削除したいのですが、こちらもファイルへの書き出しがうまく行きません。
どなたかさくっとわかられる方がいらっしゃいましたらアドバイス頂ければと思います。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
1. スクリプトをファイルに書く。
2. gawk -F, "$3==\"\x22True\x22\"{print $2}" file
のようにする。
3. gawk -F, "$3 ~/^\"True\"$/ {print $2}" file
のようにする。
cmd.exeでやるのは大変だということで。
ありがとうございました。
インラインで記述する時に、ダブルクォーテーションを「\x22」このように記述されてますが、これは一体どういうことなのでしょうか?
インターネットで調べながらコツコツとやってますが、良く分かってません。
No.3
- 回答日時:
>ダブルクォーテーションを「\x22」このように記述
これは、ダブルクォートが三重に必要だからです。
\"\"True\"\"
としてしまうと、\"\" でペアになっているように解釈されて
しまうので、それを防ぐためにコードであらわした \x22 を
使っているのです。これはgawkにはダブルクォートでくくられた
文字列の中のエスケープシーケンスと解釈されるので、
"True" という文字列がgawkに渡されるというわけです。
なんにしろ、Unixで使われるシェルに比べるとクォート関連は
貧弱ですので(command.comよりはましですが)、無理せずに
ファイルに記述してそれを使うのがよろしいかと思います。
リダイレクト記号 '>', '<' とか、正規表現の文字クラスで '^' が
出てきたときに、cmd.exeの微妙なバグをつついて悲しい思いをすることもあります。
No.2
- 回答日時:
コマンドプロンプトのコマンドラインで、" を扱うのは素人には無理です。
スクリプトをファイルに書いて、-f オプションで指定して実行します。
ファイル: script.txt
{gsub(/"/,"");if($3=="True" && $2<30) print}
実行のコマンドラインは、
gawk -F, -f script.txt INPUT.txt > OUTPUT.txt
>コマンドプロンプトのコマンドラインで、" を扱うのは素人には無理です。
そのようです。素直にファイルに書くことにします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて
-
vba クリップボードクリアにつ...
-
画像生成AIのプロンプトの作り...
-
プログラム言語
-
CSVファイルの複数行削除
-
Python... 環境設定 初心者です...
-
自作scratch アニメの商用利用
-
Geminiフォーム 画像生成で 人...
-
pythonの実行に関する質問
-
パイソンのソースコードをChatG...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
OS入ってる機器のソフト・アプ...
-
IT業で開発をされてる方々に質...
-
テキストファイルの1行目のみを...
-
Webサイト内に埋め込んだmp4動...
-
Python 3.12.2 か一番最新のパ...
-
HTMLソースが表示のページのも...
-
ネットワークフォルダの中身を...
-
プログラマーは誘惑にさらされ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
画像生成AIのプロンプトの作り...
-
Geminiフォーム 画像生成で 人...
-
CSVファイルの複数行削除
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
Python... 環境設定 初心者です...
-
pythonの実行に関する質問
-
Python 3.12.2 か一番最新のパ...
-
OS入ってる機器のソフト・アプ...
-
パイソンのソースコードをChatG...
-
Google ColaboでGUI作成
-
VBAでパワーシェルを実行したい...
-
HTMLソースが表示のページのも...
-
ネットワークフォルダの中身を...
-
Pythonのエラーメッセージをコ...
-
Webサイト内に埋め込んだmp4動...
-
google Colabでmatplotlibの描...
-
初心者powershellのPS1ファイル...
-
Pythonについて。
おすすめ情報