awk - 如何使用 awk 将单行拆分为多行?
问题描述
输入:
具有可变列数的主要以制表符分隔的文件。有些行有另一个分隔符';'。
输出:
具有相等列的制表符分隔文件,其中行具有“;” 分隔符被放入一个新行。
我的输入如下所示:
chr15 51300184 51300335 Merged-chr15-51300260-2 1 + chr15 51244653 51308019 CRD_476 1 +
chr15 51307793 51308094 Merged-chr15-51307944-3 1 - chr15 51244653 51308019 CRD_476 1 +;chr15 51307694 51333253 CRD_477 1 +
我想要的是采用具有';'的行 分隔符并将其与前 6 列中的信息一起推入新行。输出应如下所示:
chr15 51300184 51300335 Merged-chr15-51300260-2 1 + chr15 51244653 51308019 CRD_476 1 +
chr15 51307793 51308094 Merged-chr15-51307944-3 1 - chr15 51244653 51308019 CRD_476 1 +
chr15 51307793 51308094 Merged-chr15-51307944-3 1 - chr15 51307694 51333253 CRD_477 1 +
解决方案
$ awk -F';' '{print $1} NF>1{sub(/([^[:space:]]+[[:space:]]*){5}\+;/,""); print}' file
chr15 51300184 51300335 Merged-chr15-51300260-2 1 + chr15 51244653 51308019 CRD_476 1 +
chr15 51307793 51308094 Merged-chr15-51307944-3 1 - chr15 51244653 51308019 CRD_476 1 +
chr15 51307793 51308094 Merged-chr15-51307944-3 1 - chr15 51307694 51333253 CRD_477 1 +
推荐阅读
- postgresql - 复合唯一键的 Gorm 标签
- reactjs - if/else 条件或循环获取?
- json - 用jq简化geojson坐标精度
- python - 使用 BeautifulSoup 抓取不同的 URL 和特定行
- azure - Azure 功能的服务总线触发器是否需要管理对服务总线队列/主题的访问权限?
- mongodb - 如何使用动态键和动态值编写spring data mongodb查询?
- python - 为什么python要求我从主包目录上方的文件中导入?
- macos - 自动更新订阅 latest_receipt_info 数组顺序是否在 MacOS 中颠倒?
- audio - 混合来自各种来源的音频,无论输入视频是否有声音
- flutter - 集成firebase_admob时android清单中的元数据错误