如何读取BASH文件中的特定行?

时间:2013-11-23 04:33:14

标签: bash

while read -r line将遍历文件中的每一行。如何让它在文件中的特定行中运行,例如,行“1-20”,然后是“30-100”?

2 个答案:

答案 0 :(得分:3)

一种选择是使用sed来获得所需的行:

while read -r line; do
  echo "$line"
done < <(sed -n '1,20p; 30,100p' inputfile)

这样说会从inputfileread提供1-20,30-100行。

答案 1 :(得分:2)

@ devnull的sed命令完成这项工作。另一种方法是使用awk,因为它避免了读取,你可以在awk中进行处理:

awk '(NR>=1 && NR<=20) || (NR>=30 && NR<=100) {print "processing $0"}' file