1

純粋な AWK 言語でユーザー入力を求める方法はありますか?

「awk -f my.awk」を使用して実行すると、次のことを行うプログラムを作成したいと思います。

  1. 「ファイル名を入力してください:」を出力します。

  2. 入力を受け取り、ファイルを開き、行ごとに行番号と行の内容を出力します。

「awk -f my.awk text.txt」を使用して、ユーザー入力なしでこれを実現できます。my.awk に以下が含まれている場合:

{print NR, $n}

または、次を使用してターミナルで直接実行するだけです。

awk '{print NR, $n}' text.txt

これは本当にばかげた質問だと思いますが、これに関する情報が見つかりません。前もって感謝します。

4

2 に答える 2

2

純粋な AWK 言語でユーザー入力を求める方法はありますか?

つまり、これは pure では実行できませんawk

おそらく、次のような短いラッパー スクリプトを記述します。

#!/bin/bash

echo "Enter filename:"
read filename

awk -f my.awk "$filename"

pythonまたは、またはなどの別のスクリプト言語を選択しますperl

于 2013-10-30T15:37:33.233 に答える
2

はい、できます。gawk でテスト済み:

awk '
    BEGIN {
        printf "enter filename: "
        getline < "-"
        ARGV[1] = $0
        ARGC = 2
    }
    {print NR, $0}
'

参照: http://www.gnu.org/software/gawk/manual/html_node/ARGC-and-ARGV.html

于 2013-10-30T15:53:51.907 に答える