Warm tip: This article is reproduced from serverfault.com, please click

awk-可以用不同的值修剪每第n条线吗?

(awk - Hot to trim every nth line by a different value?)

发布于 2020-12-17 14:42:04

我想修剪每4行的最后XY个字符。截断应该是第4行和第2行以及第8行和第6行的字符计数之间的差异。

例如:第4行(29个字符)-第2行(20个字符)=9。因此,应删除第4行的最后9个字符。

输入:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFGGGGGFFFGG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGEFFGGEDEGEGF

输出:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGE
Questioner
gnikixam
Viewed
0
F. Knorr 2020-12-17 23:02:56

跑步

awk 'NR%4==0 {$0=substr($0,1,a)} NR%2==0 {a=length($0)}  {print $0}' input.txt

input.txt 收益率

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGE