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

如何在BASH中读取文件中的特定行?,bash,Bash,读取时-r行将贯穿文件中的每一行。如何让它在文件中的特定行中运行,例如,行“1-20”,然后是“30-100”一个选项是使用sed获得所需的行: while read -r line; do echo "$line" done < <(sed -n '1,20p; 30,100p' inputfile) 读取-r行时;做 回音“$line” done

读取时-r行将贯穿文件中的每一行。如何让它在文件中的特定行中运行,例如,行“1-20”,然后是“30-100”

一个选项是使用
sed
获得所需的行:

while read -r line; do
  echo "$line"
done < <(sed -n '1,20p; 30,100p' inputfile)
读取-r行时
;做
回音“$line”

done<@devnull的sed命令完成了这项工作。另一种选择是使用awk,因为它可以避免读取,并且您可以在awk本身中进行处理:

awk '(NR>=1 && NR<=20) || (NR>=30 && NR<=100) {print "processing $0"}' file
awk'(NR>=1&&NR=30&&NR的awk语法是什么a)打印特定行(例如:第43行和第51行)或某种列表中提供的行(例如:来自[3,77,93,22]的行号)?