
作成しているawkスクリプトを実行すると
”aaa" "1111" "kkk"
”bbb" "2222" "jjj"
という出力になってしまいます。
ダルルクォーテーションを削除したかったので
printf(”%s %s %s\n"、 adata、 bdata、 cdata)
↓
adataprint =gsub(”¥””、” ”、adata)
bdataprint =gsub(”¥””、” ”、bdata)
cdataprint =gsub(”¥””、” ”、cdata)
printf(”%s %s %s\n"、 adataprint、 bdataprint、 cdataprint)
としてみたのですが思ったような出力
aaa 1111 kkk
bbb 2222 jjj
にはなってくれません。
こういった処理はどのようにすればいいのか誰か教えていただけないでしょうか?
No.4ベストアンサー
- 回答日時:
机上デバッグ開始!
> 作成しているawkスクリプトを実行すると
> ”aaa" "1111" "kkk"
> ”bbb" "2222" "jjj"
> という出力になってしまいます。
入力ファイルは Excel データのエクスポートかな?
.csv か、タブ区切りテキストと、あたりをつけてみる。
※ 文字列を『"』で囲むのはよくあるからね。
[input.csv](想像)
…,"aaa",…,"1111",…,"kkk",…
…,"bbb",…,"2222",…,"jjj",…
> printf(”%s %s %s\n"、 adata、 bdata、 cdata)
この adata, bdata, cdata は、処理したい内容をわかりやすくするために
| {
| adata=$フィールド番号A
| bdata=$フィールド番号B
| cdata=$フィールド番号C
としたのかな?
あっ、
> adataprint =gsub(”¥””、” ”、adata)
> bdataprint =gsub(”¥””、” ”、bdata)
> cdataprint =gsub(”¥””、” ”、cdata)
これだ!
http://linuxjm.sourceforge.jp/html/GNU_gawk/man1 …
| gsub(r, s [, t])
| …… 置換の個数を返します。……
個数保存しちゃってる。。。
さっきの部分をしたのように換えればできるとおもうよ!
| gsub("\"", " ", adata)
| gsub("\"", " ", bdata)
| gsub("\"", " ", cdata)
| print adata" "bdata" "cdata
ご指摘の通りに変更することでうまくいきました!
”…… 置換の個数を返します。……”はまさかでした。
適切なアドバイスありがとうございました。
No.3
- 回答日時:
私も、printfで""が勝手に付くawkなど聞いたことがありません。
そんなawkがあったら、参考のために教えていただきたいです。
普通に考えて、まず間違いなく、その前の段階でadata,bdata,cdataに""が含まれています。
""でくくってあるCSVファイルをFS=,で取り込もうとした、とかではないか、と予想されます
> としてみたのですが思ったような出力
> にはなってくれません
質問するなら、「思ったような出力」にならなかったのなら「どんな出力になったか」を書くようにしましょう。
awkのマニュアルでgsub関数の説明は読んだのですか?
gsubは指定した変数の中身を書き換えて、その書き換え回数を返します
> printf(”%s %s %s\n"、 adataprint、 bdataprint、 cdataprint)
としたら
2 2 2
と表示されたのでは?
No.2
- 回答日時:
これもNo1=質問者
のパターンでしょうか? 質問者がちゃんと情報を記載しないため、何か変ですよね?
普通最初の疑問は
adataなどの変数とはなんぞや、最初からその変数に””が設定されているでしょう。
と考えるはずなんですが・・・・
だとしたら、ちゃんと変数にデーターが格納されるところを記載するでしょう普通。そこがこの質問の変な所ですよね???
http://homepage2.nifty.com/mozu/koza/awk_koza/aw …
にもありますが、printf に””が付加されることはありません、昔からあるawkなら。
そもそもプラットフォームも記載されていない、バージョンも記載されていない。それでやり方を提示しろ?
変な質問。
ちゃんと回答がほしいなら、プラットフォーム、バージョン等を記載すべき。
普通の解決手順は、まず変数に格納されている値になぜ””が付加されるのか、格納前、格納後を、処理のステップごとに確認し、その箇所をただすべき。
つまり、変数に格納したら
print adata;
でもいいし、
printf("%s\n",adata);
でもいい。
どこで””が紛れ込んだか調べるのが最初。自分ですでにわかっているなら、最初から、
””を外すには?
と言うテーマで書くべき。
記載内容だとprintfの操作で設定されてしまったような記載だ。
記載内容は全角文字と半角文字がごちゃまぜだが、実際のスクリプトもそうなんでしょうか?
スクリプトの全文を記載すべきなんじゃないんですか?
もしAWKに渡す前にすでについているならSEDを使って置き換えた後 | で渡せばいいだけの話。

No.1
- 回答日時:
それって、printfのフォーマット指定子%sがダブルクォートを付けている犯人じゃないですか?だとしたら、単純にprintで表示させれば済みそうな気はします。
これでいけたら超簡単!(ただし処理系依存でうまくいかない可能性あり)print adata,bdata,cdata
どうしてもprintfによるフォーマット指定が必要なら、sprintfで結果を変数に出しておき、それに対してgsubで置換をかければいけると思います。
pdata=sprintf("%s %s %s",adata,bdata,cdata)
gsub(/"/,"",pdata)
print pdata
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) awkの BEGIN{RS=""} で空行を削除できるが、削除できる仕組みが分からない。 1 2023/05/02 14:14
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
プログラミングを学べる!?進化している子どものおもちゃについて専門家に聞いた!
プログラミングを学べるレゴブロックがあることはご存知だろうか。レゴに限らず最近のおもちゃには、プログラミングの要素がどんどん取り入れられているようだ。「教えて!goo」にも、「プログラミングを学べる子供...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
Geminiフォーム 画像生成で 人...
-
vba クリップボードクリアにつ...
-
pip --versionがエラーになる
-
pythonの実行に関する質問
-
Python... 環境設定 初心者です...
-
OS入ってる機器のソフト・アプ...
-
Python 3.12.2 か一番最新のパ...
-
CSVファイルの複数行削除
-
数学、プログラミング、物理、...
-
パイソンのソースコードをChatG...
-
アセンブリ言語について。
-
AIの登場でプログラマーたちが...
-
VBAでパワーシェルを実行したい...
-
Google ColaboでGUI作成
-
アルゴリズムとコードとは何で...
-
プログラミングのやり方ざっく...
-
python言語について。
-
MOVEコマンドでサブフォルダー...
-
pythonについて(初心者です)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複するデータを抽出できる秀...
-
awkスクリプトでダブルクォーテ...
-
sprintfについて
-
DOSコマンドで、標準出力を出力...
-
文字コードの変換(Shift-JISか...
-
Perl<->Oracle間での文字化けに...
-
[Perl]ファイル出力のエンコー...
-
エクセルVBAで素数だけを出力す...
-
データの選択
-
apacheの動作について
-
「print関数は出力先のファイル...
-
教えて!perlから.exeファイル...
-
ファイル出力の改行コードをLFに
-
PerlからのCSV出力
-
Active Perlでsleepを使う。
-
[awk]uniq -cで複数ファイルの...
-
バッチファイルで、記号を含む...
-
EUCで出力されるプログラムをS-...
-
htmlから、ファイル、もしくはC...
-
リファレンスについて。
おすすめ情報