bash - 如何修剪每第n行?

标签 bash awk cut fastq

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

输入:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FFFGFGGFGFGFFGFFGFFGGGGGFFFGG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAATGG
+
GFFGFEGFGFGEFDFGGEFFGGEDEGEGF

输出:

@V300059044L3C001R0010004402
AAGTAGATATCATGGAGCCG
+
FGFFGFFGFFGGGGGFFFGG
@V300059044L3C001R0010009240
AAAGGGAGGGAGAATAATGG
+
FGEFDFGGEFFGGEDEGEGF

最佳答案

您能否尝试使用 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.

关于bash - 如何修剪每第n行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65341419/

相关文章:

regex - 使用 grep 或 sed 从日志中提取电子邮件地址

bash - 按行的唯一部分获取行,并仅显示该唯一部分的第一次出现

loops - awk 拆分更多列并打印第一个单词

自动运行时 Bash 脚本无法正常工作

bash - bash for 循环中的意外换行符

linux - 仅在 shell 脚本中一小时后提取数据

bash - 使用awk划分文件中每一行的第一个条目和最后一个条目

linux - 上传文件到busybox机器

linux - 如何使用 Bash 将柱状标记数据转换为 json?

linux - 从超过 100 个用户的文件中提取电子邮件