-q 选项

-q 选项用于对输入或输出的行进行筛选。其基本语法为:

-q[i|o][~]rows[+ccol][+a|f|s]

io 分别表示只作用于输入或输出。

rows 用于指定要读入的行号或行号范围,多个行号或行号范围间用逗号分隔。行号范围的格式为 start[:inc]:stop,若未指定 inc 则默认为1。默认情况下(即 +a),行号是在整个数据中数的;使用 +f 表示对每个文件分别计算行号;使用 +s 表示对每个数据段分别计算行号。

也可以加上 +ccol 以限制第 col 列的范围。此时,rows 的格式为 start/stop,即这一列的最小范围和最大范围。若省略 stop (但不省略 /),则表示从 start 起一直读或写到最后一行。

-q 选项开始处加上 ~ 可用于反转测试,即只输入或输出不符合 rows 限制的范围的数据。

举几个例子:

  • -q1,5 只读入数据的第2和第6行

  • -q1:5,10: 读入数据的第2-6行,以及11行之后的所有行

  • -q5:+s 对于多段数据,每段单独计算行号,读入每段记录的第6行之后的行

  • -q200:500+c2 检查第3列数据,只保留其值在200-500之间的记录