bash - 如何修剪每第n行?
问题描述
我想切断每 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.
推荐阅读
- django - django-allauth:如何避免请求好友列表?
- javascript - HTML文本区域中的角度模式验证
- mysql - 如何在 Alteryx Designer 中将输出文件推送到 MySQL 数据库?
- sql - 在 Oracle SQL 中对外部连接表使用模式匹配
- angular - 在分组列 dx-data-grid devextreme angular 中禁用默认排序
- c# - ASP.NET Core 3.1 如何使用 Azure AD B2C 返回 401 Unauthorized 而不是 Challenge
- git - 如何管理一个git项目的多个副本
- php - Zend 服务器 - 启用 Windows 身份验证 / NTLM / Apache mod_authnz_sspi
- mongodb - 构建一个mongo容器并导入数据
- verilog - 如何在 FPGA 的 PMOD 键盘上保存按键条目