Text-Processing
如何從長文件中重複列印選定的行數?
我希望能夠通過跳過第 5、6、8、9 行來列印第 1、2、3、4、7 行並重複該模式直到文件末尾。
樣本輸入:
Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Line 11 Line 12 Line 13 Line 14 Line 15 Line 16 Line 17 Line 18
期望的輸出:
Line 1 Line 2 Line 3 Line 4 Line 7 Line 10 Line 11 Line 12 Line 13 Line 16
使用 Solaris 10,KSH。會喜歡 nawk 或 sed 解決方案
如果我理解正確,您正在尋找每九行重複一次的模式。嘗試:
$ awk '{r=NR % 9} r>0 && (r<=4 || r==7)' input Line 1 Line 2 Line 3 Line 4 Line 7 Line 10 Line 11 Line 12 Line 13 Line 16
這個怎麼運作
首先,我們將行號
r=NR % 9
設置r
為模 9。接下來,我們選擇要保留的九行中的哪一行:r>0 && (r<=4 || r==7)
.