Awk 是否要每N行修剪一个不同的值?

Awk 是否要每N行修剪一个不同的值?,awk,trim,cut,fastq,Awk,Trim,Cut,Fastq,我想修剪每四行的最后XY字符。第4行和第2行以及第8行和第6行的字符计数之间的截止值应不同 例如:第4行(29个字符)-第2行(20个字符)=9。因此,应该删除第4行的最后9个字符 输入: @V300059044L3C001R0010004402 AAGTAGATATCATGGAGCCG + FFFGFGGFGFGFFGFFGFFGGGGGFFFGG @V300059044L3C001R0010009240 AAAGGGAGGGAGAATAAT + GFFGFEGFGFGEFDFGGEFFGGE

我想修剪每四行的最后XY字符。第4行和第2行以及第8行和第6行的字符计数之间的截止值应不同

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

输入:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFGGGGGFFFGG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGEFFGGEDEGEGF
输出:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGE
运行

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


谢谢!!!默认情况下,此命令删除行尾的字符?字符仅在每第四行删除是的,但为什么此命令从第四行末尾开始删除字符。它不能同时删除从行首开始的字符吗?否,
substr
-方法获取整行
$0
,并保留从
1
开始的
a
字符
@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGE