1
while read -r line
將貫穿文件中的每一行。我怎樣才能讓它通過文件中的特定行來運行,例如,「1-20」行,然後是「30-100」?如何在BASH中讀取文件中的特定行?
while read -r line
將貫穿文件中的每一行。我怎樣才能讓它通過文件中的特定行來運行,例如,「1-20」行,然後是「30-100」?如何在BASH中讀取文件中的特定行?
一種選擇是使用sed
以獲得所需的線路:
while read -r line; do
echo "$line"
done < <(sed -n '1,20p; 30,100p' inputfile)
這麼說的話將飼料從inputfile
線1-20,30-100給read
。
@ devnull的sed命令可以完成這項工作。另一種方法是使用awk的,因爲它避免了在做閱讀,您可以在AWK本身做處理:
awk '(NR>=1 && NR<=20) || (NR>=30 && NR<=100) {print "processing $0"}' file
什麼的)打印特定的線(例如awk的語法:在提供線43和51)或線某種列表(例如:[3,77,93,22]的行號? – drevicko
ok,找到答案[here](http://stackoverflow.com/a/12184784/420867) – drevicko