このAWKスクリプトと同等のバッチスクリプトが必要です。
awk '{print $3}'
ファイルには次の内容が含まれています。
XXX YYY : 8
Rrr rrr : 7
ddd rrr : 9
印刷するバッチスクリプトを取得したい
8, 7, 9
各値をループに割り当ててif条件にリダイレクトする方法はありますか?
このAWKスクリプトと同等のバッチスクリプトが必要です。
awk '{print $3}'
ファイルには次の内容が含まれています。
XXX YYY : 8
Rrr rrr : 7
ddd rrr : 9
印刷するバッチスクリプトを取得したい
8, 7, 9
各値をループに割り当ててif条件にリダイレクトする方法はありますか?
Windows Batch スクリプトを要求しているのか、awk スクリプトを要求しているのかわかりません。両方を以下に示します。
test.txt:
XXX YYY : 8
Rrr rrr : 7
ddd rrr : 9
AWK :
awk 'NR > 1 {printf ", "}{printf $4}END{printf "\n"}' test.txt
出力:
8, 7, 9
Windows バッチ スクリプト:
@echo off
SET _c=
FOR /F "tokens=4 delims= " %%G IN (test.txt) DO (
IF DEFINED _c <nul set /p z=", "
<nul set /p z=%%G
SET _c=1
)
出力:
8, 7, 9
awk -F: '{x=x","$2;}END{print substr(x,2,length(x)-1)}' your_file
以下でテスト済み:
> cat temp
XXX YYY : 8
Rrr rrr : 7
ddd rrr : 9
> awk -F: '{x=x","$2;}END{print substr(x,2,length(x)-1)}' temp
8, 7, 9
別の解決策:
awk '{ if(NR<3) printf "%s, ", $4 }END{ print $4 }' file
結果:
echo -e "XXX YYY : 8\nRrr rrr : 7\nddd rrr : 9" | awk '{ if(NR<3) printf "%s, ", $4 }END{ print $4 }'
8, 7, 9
すでに awk.exe がある場合は、手順 (3) を試してから試してください (1:3)。
AWKは、後方互換性もあるGAWKに取って代わられました (チェック(3) )。
適切な GAWK を入手する
そこで、セットアップリンクを実行する Gawk v3.6.1 を使用しました。gawk-3.1.6-1-setup.exe を実行します。
インストール中に、抽出/インストール先のディレクトリへのパスをメモし、バイナリとドキュメントの両方にチェックマークを付けます。残りは好みです。
GAWKを抽出する
インストールしたら、インストールでメモしたパスに移動し、 bin ディレクトリに移動して、インストール ディレクトリからgawk.exeを抽出します。gawk.exeをコピーし、gawk 機能を提供するバッチ ファイル (*.bat) のディレクトリに移動して貼り付けます (これは移植可能な *.exe であり、バッチの目的は自己完結型である必要があるため)。
適切なコマンドを使用する
これらのコマンドは、適切にフォーマットされたキーワードを端末に直接出力します。インターネットを精査するのに丸一日かかり、約2000行の長さのテキストファイルを読み取り、中括弧の前にBEGINを見つけました。*\man\cat1のgawk.1.txtを読むまで、私には思いつきませんでした
gawk "BEGIN { print \"Hello world\"}"
REM If you have printf from GNUwin32
gawk "BEGIN { printf \"Hello world\"}"