热到 trim 每第 n 行一个不同的值?
Hot to trim every nth line by a different value?
我想 trim 每 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
运行
awk 'NR%4==0 {[=10=]=substr([=10=],1,a)} NR%2==0 {a=length([=10=])} {print [=10=]}' input.txt
在 input.txt
产量
@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGE
我想 trim 每 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
运行
awk 'NR%4==0 {[=10=]=substr([=10=],1,a)} NR%2==0 {a=length([=10=])} {print [=10=]}' input.txt
在 input.txt
产量
@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAAT
+
GFFGFEGFGFGEFDFGGE