首页 > 解决方案 > 如何修剪每第n行?

问题描述

我想切断每 4 行的前 9 个字符。我可以使用cut -c 9,但我不知道如何只选择每 4 行,而不会丢失剩余的行。

输入:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFGGGGGFFFGG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAATGG
+
GFFGFEGFGFGEFDFGGEFFGGEDEGEGF

输出:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FGFFGFFGFFGGGGGFFFGG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAATGG
+
FGEFDFGGEFFGGEDEGEGF

标签: bashawkcutfastq

解决方案


您能否尝试在 GNU 中使用显示的示例进行跟踪、编写和测试awk

awk 'FNR%4==0{print substr($0,10);next} 1' Input_file

或根据@tripleee 的建议(在评论中)尝试:

awk '!(FNR%4) { $0 = substr($0, 10) }1' Input_file

说明:为上述添加详细说明。

awk '                   ##Starting awk program from here.
FNR%4==0{               ##Checking condition if this line number is fully divided by 4(every 4th line).
  print substr($0,10)   ##Printing line from 10th character here.
  next                  ##next will skip all further statements from here.
}
1                       ##1 will print current Line.
' Input_file            ##Mentioning Input_file name here.

推荐阅读