これが次のとおりです。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