Text-Processing

如何從長文件中重複列印選定的行數?

  • February 28, 2018

我希望能夠通過跳過第 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).

引用自:https://unix.stackexchange.com/questions/427057