假设这是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