Windowsのバッチファイルにて、以下の構文を実行しますと、
―――――――――――――――――――――
echo.123|awk "/[0-9]/"
―――――――――――――――――――――
以下のような結果になるのですが、
―――――――――――――――――――――
buffer: 1
123
―――――――――――――――――――――
この「buffer: ~」を出力しないように出来ないでしょうか。
WEBで調べて色々試してみたのですが、なかなか実現出来ずにいます。
ご存知の方がおられましたら、お教え頂けないでしょうか。
No.4ベストアンサー
- 回答日時:
ご回答、ありがとうございます。
自分では最新版を探せなかったので非常に助かりました。ありがとうございます。
他のAWKも含め、5種類くらいテストさせて頂きましたが、「buffer: ~」が表示されず、尚且つ、日本語を大量に含むスクリプトでも正常な動作をしたのは、唯一、最新版のGNU AWKのみでした。
ですので、今後はこちらを使わせて頂こうと思います。
Wr5さんのご教示も非常に勉強になりました。私の中ではどちらもベストアンサーです。お二人とも本当にありがとうございました。助かりました。
No.3
- 回答日時:
># ソースは確認していないですが。
で、ソースを確認した。
"buffer: %s\n"ってのが、dfa.cのmatch_mb_charset()に「追加」されています。
デバッグ用に追加されたコードでしょうかねぇ。
オリジナルと思われる"gawk-3.1.6.tar.gz"のmatch_mb_charset()にはそんなもの入っていないので、デバッグ用に追加して削除し忘れたもの…である可能性が高そうです。
より新しいバージョンのWindows版GNU awkが取得できるところがあれば…また別の結果になるやも知れませんが。
再度、ご回答ありがとうございます。
> デバッグ用に追加して削除し忘れたもの…である可能性が高そうです。
そうなのですね。私はプログラミングが出来ないので非常に参考になります。
「! /^buffer: /」での処理も良いとは思うのですが、滅多に無いとは思いますが、入力データどこかの行頭に「buffer: 」がある場合にまずいという点と、正規表現で行をマッチさせる処理は頻繁に使うと思うので、その度に「|awk "! /^buffer: /"」が付いているとコードがやや煩雑になってしまう点が少し気になっています。
もし、GNUのAWKでデバッグ用コードの消し忘れがあるのなら、むしろ、他の「mawk」や「jgawk」の方がきちんとしているのかも知れないですね。私がちょっとGNUを過信し過ぎていたのかも知れません。
ちょっと、別バージョンのGNUのAWKや、他のAWKも色々と動作テストしてみようと思います。良いAWKが見付からなければ、「! /^buffer: /」の方法を使わせて頂こうと思います。ありがとうございます。
No.2
- 回答日時:
>使用しているAWKは、GNUのものです。
http://gnuwin32.sourceforge.net/packages/gawk.htm
から取得。
# ソースは確認していないですが。
>お教え頂いた対処法ですと、「123」まで出力されなくなってしまいますので、ちょっと今回のケースでは使えないです。すみません。
「buffer: ~」は標準エラー出力ではなかった…ようで。
パイプでさらに繋げてみました。
echo.123|awk "/[0-9]/"|awk "! /^buffer: /"
でどうでしょう?
# なんぞオプション指定でカットでき…るような気もしますけども。
No.1
- 回答日時:
で、そのawkの素性は?
>この「buffer: ~」を出力しないように出来ないでしょうか。
標準エラー出力…だったりしませんか?
その場合は、標準エラー出力の内容をリダイレクトして捨てる感じでしょうかね。
http://tooljp.com/windows/doc/stdout-stderr/stdo …
https://qiita.com/uhooi/items/b8b25761a5c4efe9025a
ご回答、ありがとうございます。
使用しているAWKは、GNUのものです。
そこに同梱されている、「gawk」「pgawk」等でも同じ結果となります。
他のAWKですと、「mawk」や「jgawk」では当該の一文は出力されません。
お教え頂いた対処法ですと、「123」まで出力されなくなってしまいますので、ちょっと今回のケースでは使えないです。すみません。
エラー自体は、コマンドプロンプトが出しているのではなくて、AWKが出しているような気がします。
GNUのAWKが一番メンテナンスされている気がするので、出来ればGNUのものを使いたいのですが、他のものが良さそうなら、そちらを使おうかとも思います。
正規表現にマッチした行を、余計な出力を出さずに表示したいだけなので、それくらいシンプルな処理なら、GNUのAWKで十分可能なはずだと思うのですが、いかんせんAWK初心者なので、方法が分からず困っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) awkの正規表現での最左最短マッチング 3 2022/07/01 00:10
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- 化学 Triton X-100 bufferの作り方について 1 2022/07/12 11:27
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- 楽器・演奏 ギターのエフェクターについてです! スプリッターとは何ですか?自分はempress effects 1 2023/03/18 21:12
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
詳しくないので、どなたかお教...
-
VBA レジストリの値の読み方に...
-
printfとputcharの違いは
-
MMDでavi出力が出来ない
-
COBOLのMOVEで桁数が異なる場合
-
VBAでテキスト出力時のスペース...
-
プログラムについての質問です...
-
4Kの外部モニターに出力すると...
-
【エクセル、並び替えについて】
-
printfの書式%.*s
-
cout と cerrの違い
-
エクセルで英字と数字を組み合...
-
コンセントの電力は入力と出力...
-
TV出力ポートをOFFにすれば良い...
-
CRC16計算について
-
【PowerPoint VBAの高速化】
-
ACアダプタの適合性・互換性に...
-
\\00.入力先ディレクトリ上でWO...
-
ExcelマクロでIEのHP上のダウン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
MMDでavi出力が出来ない
-
プログラムについての質問です...
-
コンセントの電力は入力と出力...
-
AIに回答させるって
-
OBS配信すると、マイクが途切れ...
-
VBAでテキスト出力時のスペース...
-
cout と cerrの違い
-
アクセスでエクセルに出力する...
-
printfとputcharの違いは
-
ACCESS クエリ→フォーム...
-
VBAのExecメソッドで画面を非表...
-
COBOLのMOVEで桁数が異なる場合
-
テキストファイルから特定の文...
-
VBAで有効数字の設定
-
coutで出力した文字を消去する...
-
Windows Formアプリからコンソ...
-
KEYENCEのシーケンスプログラム...
-
CRC16計算について
おすすめ情報