ユーザーが入力した指定された範囲内のすべての行/レコードを表示するawkスクリプトを作成する方法は?

ユーザーが入力した指定された範囲内のすべての行/レコードを表示するawkスクリプトを作成する方法は?

これが次のとおりです。data.lst

Anil Sharma, Vaishali Nagar, science, 45, 67
Manoj Gupta, Sri Nagar Road, commerce, 66, 89
Kamal Sharma, Shastri Nagar, commerce, 81, 32
Rama Sharma, Vaishali Nagar, commerce, 45, 91
Chirag Harwani, Vaishali Nagar, science, 34, 63

awkユーザーが入力した指定範囲内のすべての行/レコードを表示するスクリプトを作成したいと思います。

これが私が今まで書いた内容だ。

desiredact.awk
BEGIN{
 printf "Enter the initial range: "
 getline n1 < "/dev/tty"
 printf "Enter the last range: "
 getline n2 < "/dev/tty"
 }

もっと進む方法は?はい、範囲は行番号です。

ベストアンサー1

目的の出力範囲の開始と終了を提供する方が簡単です。到着 awkブロックから解析する代わりに変数として使用しますBEGIN

$ awk -v rangestart=3 -v rangeend=5 'NR >= rangestart && NR <= rangeend { print }' inputfile
Kamal Sharma, Shastri Nagar, commerce, 81, 32
Rama Sharma, Vaishali Nagar, commerce, 45, 91
Chirag Harwani, Vaishali Nagar, science, 34, 63

おすすめ記事