我懷疑我會解決這個問題的很長的路要走,但請原諒我是新來猛砸,grep和awk的...擊:grep的行號對應於AWK NR
我的問題的總結grep中的行號不對應於文件中的實際行號。從我收集的空行中刪除行號。我不想遍歷文件中的每一行以確保100%的覆蓋率。
我所試圖做的是從一個文件搶行的段並用grep和awk
grep的調用得到行號的列表,因爲可能有多個實例對其進行處理的在文件中的「開始位置」:
startLnPOSs=($(cat "$c"| grep -e '^[^#]' | grep --label=root -e '^[[:space:]]start-pattern' -n -T | awk '{print $1}'
然後,使用AWK我從起始點迭代,直到遇到一個「結束」令牌。
declarations=($(cat "$c" | awk "$startLnPos;/end-pattern/{exit}"))
'grep'不會忽略其編號中的空白行。 – Barmar
你可以在awk中完成所有的事情。另外查看如何在awk中使用shell變量。 – 123
你爲什麼使用'grep'來查找起始行號?你可以在'awk'中匹配相同的模式。 – Barmar